У меня есть две целей с кодом нижеПолучить информацию о пользователе из DN
1) Получить список пользователей, которые ниже определенной AD группы
2) Получить электронное/LastName/имя всех пользователей которые принадлежат этой группе
Если есть лучший способ выполнить оба действия, сообщите мне об этом.
Я могу получить полное DN, но я не уверен, как получить оставшиеся данные из полного DN, или если есть лучший способ получить эту информацию, пожалуйста, дайте мне знать. Ниже приведен код, который я использую, но он получает ошибку:
Когда я попытался сделать DirectorySearcher с использованием полного DN.
HashSet<string> User_Collection = new HashSet<string>();
SearchResultCollection sResults = null;
DirectoryEntry dEntryhighlevel = new DirectoryEntry("LDAP://CN=Global_Users,OU=Astrix,OU=Clients,OU=Channel,DC=astro,DC=net");
foreach (object dn in dEntryhighlevel.Properties["member"])
{
DirectoryEntry dEntry = new DirectoryEntry(dn);
Console.WriteLine(dn);
DirectorySearcher dSearcher = new DirectorySearcher(dEntry);
//filter just user objects
dSearcher.SearchScope = SearchScope.Base;
//dSearcher.Filter = "(&(objectClass=user)(dn="+dn+")";
dSearcher.PageSize = 1000;
sResults = dSearcher.FindAll();
foreach (SearchResult sResult in sResults)
{
string Last_Name = sResult.Properties["sn"][0].ToString();
string First_Name = sResult.Properties["givenname"][0].ToString();
string Email_Address = sResult.Properties["mail"][0].ToString();
User_Collection.Add(Last_Name + "|" + First_Name + "|" + Email_Address);
}
Скорость важна, и да, я понимаю, что я не использую HashSet, поскольку он разработан.