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); }
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; }
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 }; } }