Я думаю этот код будет отвечать всем требованиям.
В ADSI есть нечто большее, чем просто LDAP, и из моего опыта проще использовать клиент LDAP для подключения к ActiveDirectory, чем наоборот - что, к сожалению, вы и пытаетесь сделать.
Для начала, вот надежный способ аутентификации пользователя.
- Установите соединение с вашим сервером LDAP с помощью учетной записи службы.Если возможно, используйте протокол LDAP через SSL, LDAPS
- Поиск имени пользователя (который является частью CN = jdoe), чтобы получить полное DN (отличительное имя)
- Если у вас есть дублированный результатостановитесь здесь с ошибкой
- Привязка к LDAP с DN и паролем, который вы пытаетесь подтвердить.Убедитесь, что вы используете один и тот же метод проверки с обеих сторон.
- Если он связывает, пароль действителен.
- Закройте только что установленное соединение
- В зависимости от ваших потребностей, либо удерживайте соединение, которое вы сделали в шаге 1, либо разорвите его.