Я работаю над простым решением для обновления пароля пользователя в Active Directory.
Я могу успешно обновить пароль пользователей. Обновление пароля работает отлично. Допустим, пользователь обновил пароль от MyPass1 до MyPass2
Теперь, когда я запускаю свой собственный код для проверки учетных данных пользователей, используя:
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "MyPass2");
}
//returns true - which is good
Теперь, когда я ввожу неверный пароль, он очень хорошо проверяется:
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "wrongPass");
}
//returns false - which is good
Теперь по каким-то нечетным причинам он проверяет предыдущий пароль, который помнил MyPass1?
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "MyPass1");
}
//returns true - but why? we have updated password to Mypass2
Я получил этот код:
Подтвердить имя пользователя и пароль в Active Directory?
Является ли это чем-то связанным с последним истечением срока действия пароля или это то, как должна работать валидация?