PrincipalContext.ValidateCredentials всегда возвращает false с машиной ContextType на XP - PullRequest
1 голос
/ 02 сентября 2010

Я использую PrinciaplContext.ValidateCredentials для проверки набора учетных данных на локальном компьютере:

string account = Context.ReadLine();
string pass = Context.ReadLine();

using (var context = new PrincipalContext(ContextType.Machine))
{
    bool valid = context.ValidateCredentials(account, pass);

    Console.WriteLine("valid: " + (valid ? "true" : "false"));
}

Консольное приложение выполняется как администратор, и я пытаюсь подтвердить учетную запись / пароль администратора.Машина работает под управлением Windows XP и не является частью домена.

Запуск одного и того же кода на другом компьютере под управлением Windows XP, который является частью домена, всегда возвращает значение true, независимо от того, является ли пароль правильным или неправильным.Если я использую ContextType.Domain, указав домен, учетная запись корректно проверяется.

Действительно ли ValidateCredentials не работает в контексте компьютера с XP?Что-то еще не так, я здесь не учту?

1 Ответ

2 голосов
/ 02 сентября 2010

Класс PrincipalContext является частью пространства имен DirectoryServices.Разумеется, без домена нет каталога.Поэтому вызов для аутентификации в каталоге завершится неудачей, если машина XP не является членом домена.

...