Использование C #для аутентификации пользователя по LDAP

Я использую DirectorySearcher для поиска записи пользователя на сервере LDAP.

DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://myserver/OU=People,O=mycompany";
de.AuthenticationType = AuthenticationTypes.None;

DirectorySearcher deSearch = new DirectorySearcher();

deSearch.SearchRoot = de;
deSearch.Filter = "(uid=" + model.UserName + ")";

SearchResult result = deSearch.FindOne();

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

«Неверное имя пользователя или пароль».

DirectoryEntry entry = new DirectoryEntry("LDAP://myserver/OU=People,O=mycompany", username, password);
DirectorySearcher search = new DirectorySearcher(
    entry,
    "(uid=" + username + ")",
    new string[] { "uid" }
);

search.SearchScope = System.DirectoryServices.SearchScope.Subtree;
SearchResult found = search.FindOne();   ->>>>>this is where I get wrong credential error.

Имя пользователя и пароль предназначены для пользователя, которого я хочу аутентифицировать.

Может ли кто-нибудь сказать мне, что я делаю неправильно здесь или как это отладить.

21
задан Tolga Evcimen 28 June 2014 в 06:05
поделиться