Я работаю в C# .Net 4.5. Я использую приведенный ниже код, чтобы проверить, принадлежит ли конкретный пользователь к данной группе AD или нет. Но это не дает результатов, хотя я ввожу действительные данные пользователя.
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://xyz.com";
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
string usr = "test1";
deSearch.Filter = string.Format("(&(objectCategory=person)(anr = {0}))", usr);
SearchResult result = deSearch.FindOne();
Я также пробовал использовать критерии фильтра ниже, но результат нулевой. Пожалуйста, дайте мне знать, что пошло не так в моем коде.
Попробуйте userPrincipalName
вот так:
deSearch.Filter = "(&(objectCategory=person)(objectClass=user)(userPrincipalName = " + usr + "@*))";
deSearch.PropertiesToLoad.Add("userPrincipalName");
deSearch.PropertiesToLoad.Add("displayName");
SearchResult result = deSearch.FindOne();
Я заменил aDirSearcher на deSearch и попробовал. по-прежнему результат показывает нулевое значение
Да aDirSearcher
= deSearch
. Я отредактировал свой ответ. Что такое ваша переменная usr
? test1
- это логин Windows? Можно попробовать заменить userPrincipalName=
на cn=
Извини, Песка. он не работает после замены userPrincipalName на cn также
В последней строке, я думаю, мне следует заменить aDirSearcher на deSearch. Правильно?