Вопрос по ldap, c# – Сбой поискового LDap-поиска с «Запрошенный атрибут не существует»

1

Мне нужно получить "номер сотрудника" всех сотрудников, чей «epersonstatus = УДАЛИТЬ»; используя поиск Ldap, реализованный с использованием .NET / C #, например:

var connection = new LdapConnection("foo.bar.com:389");

connection.AuthType = AuthType.Anonymous;
connection.SessionOptions.ProtocolVersion = 3;
connection.Bind();

var request = new SearchRequest(
                 "dc=root,dc=com",
                 "(epersonstatus=REMOVE)", 
                 SearchScope.Subtree,
                 new string[] { "employeenumber" }); 

Так как есть тысячи записей, я использую постраничные запросы, как предложено здесь: http://dunnry.com/blog/PagingInSystemDirectoryServicesProtocols.aspx

Я также проверил, что сервер поддерживает постраничные запросы, как предложено здесь: iPlanet LDAP и C # PageResultRequestControl

Как только поток достигает:

SearchResponse response = connection.SendRequest(request) as SearchResponse;

Я получаю исключение DirectoryOperationException с сообщением "Запрошенный атрибут не существует".

Запустив такой же запрос на клиенте LDap, например, на softerra, я получаю записи (тысячу) и Ошибка.

Некоторая помощь будет принята с благодарностью.

Ваш Ответ

1   ответ
2

При использовании постраничного поиска я получил исключение"The server does not support the control. The control is critical."при использовании поиска в постраничном поиске я получал результаты (по крайней мере, до тех пор, пока фильтр ограничивал максимальное количество).

Однако я обнаружил, что сообщение об ошибке вводит в заблуждение - проблема была похоронена в аутентификации.

С помощьюAuthType.Basic (или жеAuthType.Anonymous) Я получил ошибку. Автобус, как только я перешел наAuthType.Ntlm это сработало.

Надеюсь это поможет...

Спасибо @Marc, мне это тоже помогло. Я разместил вопрос здесьHow to resolve “The server does not support the control. The control is critical.” Active Directory error а потом нашел это.
Это помогло, спасибо. У меня была похожая проблема, когда на сервере, присоединенном к домену, Basic работал нормально, но после выхода на сервер, не присоединенный к домену, в тот же момент произошла ошибка. Обеспечение того, чтобы я использовал AuthType.Ntlm, позволило выполнить запрос успешно.

Похожие вопросы