Я использовал эту небольшую функцию без каких-либо проблем в течение последних нескольких лет для проверки учетных данных пользователя. Метод createPrincipalContext
возвращает PrincipalContext
с ContextType.Machine
и именем машины.
public static bool ValidateCredentials(string username, string password, string domain = null) {
try {
using (var principalContext = createPrincipalContext(username, domain)) {
username = GetLoginInfo(username).Username;
// validate the credentials
if (principalContext.ValidateCredentials(username, password)) {
//once valid check if account is enabled
using (UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, username)) {
return user.Enabled.GetValueOrDefault(false);
}
}
}
} catch (PrincipalOperationException e) {
traceError(e);
} catch (Exception e) {
traceError(e);
}
return false;
}
Моя машина разработки автоматически обновилась до последней версии Windows 10, и с тех пор principalContext.ValidateCredentials
выбрасывает следующее исключение.
System.IO.FileNotFoundException: система не может найти указанный файл.
Помимо обновления машины ничего не изменилось. Я потратил последние несколько дней на поиск в сети за то, что могло вызвать эту проблему.
Есть ли у кого-нибудь опыт в определении того, что могло быть причиной и по возможности, решением?