2012-07-02 3 views
2

Я использую функции System.DirectoryServices.Protocols для запроса каталога .Как получить ответ ldap bind

В каталоге используется оверлей политики пароля.

Если я привяжусь к каталогу, сервер может вернуть элементы управления, которые могут содержать предупреждения об истечении срока действия пароля.

Как получить ответ связывания в C#? System.DirectoryServices.Protocols.Bindvoid.

Запрос пользователей pwdChangedTime, получение политики, указанной в pwdPolicySubentry, делает математику, чтобы предупредить пользователя об истечении срока действия пароля, не похоже на хороший способ сделать это.

Любая помощь очень ценится,

ответ

2

К сожалению, вы не можете сделать это с помощью операции связывания. S.DS.P - это тонкий слой поверх Winldap32, и он не распознает никаких элементов управления, отправленных обратно в операцию привязки. В прошлом году я пошел по нескольким путям, используя методы отражения, чтобы манипулировать внутренними классами S.DS.P и самостоятельно вставлять в Winldap32, и в конечном итоге он стал коротким из-за ограничений в Winldap32. Существует библиотека ldap, написанная Novell, которая представляет собой собственную чистую реализацию CLR. В эти дни я не уверен, что он в хорошем состоянии. Единственный другой вариант - написать свою собственную библиотеку .net поверх клиентских библиотек openldap.

Другой в сторону. Использование TLS с S.DS.P в приложении на стороне сервера приведет к тому, что S.DS.P перейдет в бесконечный цикл при обработке ответа TLS при определенных условиях. Работа вокруг заключается в использовании прямого SSL на порту 636.

+0

;) Спасибо за ваше подтверждение – user1495681

+0

Если я хотел бы попытаться сделать это в Win32, какой вызов я должен использовать в winldap? – gyurisc

Смежные вопросы