DirectorySearcher не возвращает никаких результатов из запроса LDAP (C #) - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь вернуть всех пользователей в 2 OU. Первое подразделение (ниже) - это пользователи ИТ в подразделении пользователей HSD. Это возвращает ноль каждый раз, но я могу вернуть всех пользователей с помощью следующего.

search.Filter = "(&(objectClass=user))";

Я перепробовал множество вариаций OU и DC в сочетании без результатов.

 string DomainPath = "LDAP://hs.domain.org";
                DirectoryEntry searchRoot = new DirectoryEntry(DomainPath);
                DirectorySearcher search = new DirectorySearcher(searchRoot);
                //The following filter does work
                //search.Filter = "(&(objectClass=user))";

                search.Filter = string.Format("(&(objectClass=user)(OU=IT Users,OU=HSD Users,DC=hs,DC=domain,DC=org)");
                search.PropertiesToLoad.Add("samaccountname");
                search.PropertiesToLoad.Add("mail");
                search.PropertiesToLoad.Add("usergroup");
                search.PropertiesToLoad.Add("displayname");//first name
                search.PropertiesToLoad.Add("manager");


                SearchResult result;
                SearchResultCollection resultCol = search.FindAll();
                if (resultCol != null)
                {
                    for (int counter = 0; counter < resultCol.Count; counter++)

1 Ответ

0 голосов
/ 08 января 2019

Используемый вами фильтр LDAP недопустим, поэтому записи не возвращаются. Чтобы найти объекты в определенном контейнере / подразделении или поддереве, вам нужно задать searchRoot путь.

Чтобы найти все записи, содержащиеся непосредственно в определенном контейнере / подразделении, установите SearchScope на 1 (OneLevel) с помощью следующего конструктора:

DirectorySearcher(DirectoryEntry, String, String[], SearchScope)

Если вы хотите найти все подходящие записи в определенного контейнера / OU, то вы можете использовать конструктор выше, но использовать конкретный контейнер / OU в качестве searchRoot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...