Почему Active Directory проверяет последний пароль?

Я работаю над простым решением для обновления пароля пользователя в 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?

Это как-то связано с истечением срока действия последнего пароля или так ли должна работать проверка?

33
задан Community 23 May 2017 в 11:47
поделиться