PrincipalSearcher Неверное имя пользователя или пароль

Я пытаюсь получить данные пользователя из активного каталога. Процесс аутентификации верен.

var context = new PrincipalContext(ContextType.Domain, "localhost-ad.local", "OU=LocalOu,DC=localhost-ad,DC=local", ContextOptions.Negotiate);
var login = context.ValidateCredentials("user.name", "password", ContextOptions.Negotiate);

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

var user = new UserPrincipal(context);

var searcher = new PrincipalSearcher(user);
var searchResults = searcher.FindAll();

List<UserPrincipal> results = new List<UserPrincipal>();

foreach (Principal p in searchResults)
{
    results.Add(p as UserPrincipal);
}

return results;

Как я могу решить эту проблему?

1 ответ

Решение

Я думаю, что ваша проблема может быть связана с неправильным пониманием того, что PrincipalContext.ValidateCredentials делает.

Он не аутентифицирует контекст в домене и не разрешает доступ к домену каким-либо образом, все, что он делает, это проверяет правильность имени пользователя и пароля и возвращает True или же False,

Вместо этого вы можете аутентифицироваться с доменом так:

var context = new PrincipalContext(ContextType.Domain, "localhost-ad.local",
    "OU=LocalOu,DC=localhost-ad,DC=local", "user.name", "password");
Другие вопросы по тегам