コード例 #1
0
        private void lvwPermEntries_DoubleClick(object sender, System.EventArgs e)
        {
//		this.lstPermDetails.Items.Clear();

            object[]    hiddenObject = (object[])this.lvwPermEntries.SelectedItems[0].Tag;
            ContextMenu ctx          = new ContextMenu();

            string[] masks = (string[])hiddenObject.GetValue(0);
            string   items = null;

            foreach (string mask in masks)
            {
                items += AccessControlEntry.GetFriendlyName(mask) + "\n";
            }

            this.toolTip.SetToolTip(this.lvwPermEntries, items);
        }
コード例 #2
0
        private void LoadAceDetails()
        {
            string schemaPath = "LDAP://";

            schemaPath += new DirectoryEntry("LDAP://RootDSE").Properties["schemaNamingContext"].Value.ToString();

            DirectoryEntry schemaEntry = new DirectoryEntry(schemaPath);

            schemaEntry.Path = "LDAP://CN=Users," + new DirectoryEntry("LDAP://RootDSE").Properties["defaultNamingContext"].Value.ToString();
            foreach (DirectoryEntry child in schemaEntry.Children)
            {
                try
                {
                    this.cboTrustees.Items.Add(child.Properties["userPrincipalName"].Value.ToString());
                }
                catch (Exception e)
                {
                }
            }


            foreach (string perm in Enum.GetNames(typeof(ADS_RIGHTS_ENUM)))
            {
                if (perm != Enum.GetName(typeof(ADS_RIGHTS_ENUM), ADS_RIGHTS_ENUM.ADS_RIGHT_DS_READ_PROP) ||
                    perm != Enum.GetName(typeof(ADS_RIGHTS_ENUM), ADS_RIGHTS_ENUM.ADS_RIGHT_DS_WRITE_PROP))
                {
                    object         p = Enum.Parse(typeof(ADS_RIGHTS_ENUM), perm);
                    PermissionItem o = new PermissionItem(Enum.Parse(typeof(ADS_RIGHTS_ENUM), perm),
                                                          AccessControlEntry.GetFriendlyName(perm));
                    this.lstPermList.Items.Add(
                        o, CheckState.Unchecked);
                    Console.Write("");
                }
            }

            hasLoadedSecInfo = true;
        }
コード例 #3
0
        private void LoadSecurity_Click(object sender, System.EventArgs e)
        {
            this.lvwPermEntries.Items.Clear();
            AccessControlList acl = new AccessControlList(util.SharedEntry);


            string accessMask      = null;
            string inheritedObject = null;
            string aceFlags        = null;



            foreach (AccessControlEntry ace in acl)
            {
                aceFlags = AccessControlEntry.GetFriendlyName("ADS_ACEFLAG_INHERIT_ACE");

                if (ace.AceFlags != null)
                {
                    foreach (string flag in ace.AceFlags)
                    {
                        if (flag == "ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE")
                        {
                            aceFlags = AccessControlEntry.GetFriendlyName(flag);
                            break;
                        }
                    }
                }

                switch (ace.AccessMask.Length)
                {
                case 1:
                    accessMask = AccessControlEntry.GetFriendlyName(ace.AccessMask.GetValue(0).ToString());
                    break;

                case 13:
                    accessMask = "Full Control";
                    break;

                default:
                    accessMask = "Special";
                    break;
                }
                if (ace.ObjectType.Length > 1)
                {
                    accessMask += " " + ace.ObjectType;
                }


                if (ace.InheritedObject.Length == 0)
                {
                    inheritedObject = "<<not inherited>>";
                }
                else
                {
                    inheritedObject = ace.InheritedObject + " Objects";
                }



                string[] items =
                    new string[] { AccessControlEntry.GetFriendlyName(ace.AceType.GetValue(0).ToString())
                                   , ace.Trustee,
                                   accessMask,
                                   inheritedObject,
                                   aceFlags };
                ListViewItem item = this.lvwPermEntries.Items.Add(new ListViewItem(items));
                item.Tag = new object[] { ace.AccessMask, ace.NativeAce };
            }
        }