Я использую 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? Что-то еще не так, что я не учитываю здесь?