我正在研究一种在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
Run Code Online (Sandbox Code Playgroud)
现在,当我输入一些错误的密码时,它会很好地验证:
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "wrongPass");
}
//returns false - which is good
Run Code Online (Sandbox Code Playgroud)
现在由于一些奇怪的原因,它验证了以前的最后一个密码是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 …Run Code Online (Sandbox Code Playgroud)