/// <summary> /// Queries and initializes the ldapMessage for the selected group /// Gets all users and groups those are members for selected group /// Fills the list with listview /// </summary> /// <param name="ce"></param> /// <param name="servername"></param> /// <param name="name"></param> /// <param name="dirnode"></param> public void SetData(CredentialEntry ce, string servername, string name, ADUCDirectoryNode dirnode) { Dictionary <string, string> members = UserGroupUtils.GetGroupMembers(dirnode); foreach (string str in members.Keys) { OriginalObjects.Add(str); ModifiedObjects.Add(str.ToLower()); } _dirnode = dirnode; MemoflistView.Items.Clear(); //show a list of group names in the member of page Logger.Log("Group member contains: "); foreach (string sDN in members.Keys) { string[] slvItem = null; System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(sDN, _dirnode.LdapContext.UserName, _dirnode.LdapContext.Password); if (members[sDN].Equals("foreignSecurityPrincipal")) { byte[] objectSid = de.Properties["objectSid"].Value as byte[]; string Sid = UserGroupUtils.SIDtoString(objectSid); string cn = UserGroupUtils.GetGroupFromForeignSecurity(Sid, dirnode.LdapContext); if (cn != null) { slvItem = new string[] { cn, "NT AUTHORITY" }; } else { continue; } } else { slvItem = UserGroupUtils.splitDn(sDN); } ListViewItem lvItem = new ListViewItem(slvItem); lvItem.ImageIndex = MemOfPages.GetIndexForADObject(de); MemoflistView.Items.Add(lvItem); lvItem.Tag = sDN; } if (MemoflistView.Items.Count > 0) { MemoflistView.Items[0].Selected = true; } }