更改密码前验证旧密码

时间:2014-06-06 00:42:57

标签: c# active-directory change-password

我尝试使用ActiveDirectoryMembershipProvider.ChangePassword

LDAP更改我的帐户密码
MembershipUser currentUser = Membership.GetUser(User.Identity.Name, userIsOnline: true);
changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword);

如果输入错误的旧密码,ChangePassword将返回false。 我的问题是:来自ChangePassword方法的错误结果意味着我的旧密码错了吗?如果没有,我怎么能检测到我输入了错误的密码?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果更新成功,MembershipUser.ChangePassword()方法将返回true。如果旧密码错误,它不会提供任何信息。

由于此方法调用底层成员资格提供程序的ChangePassword()方法,如果成员资格提供程序对例如新密码不匹配的密码大小有限制,它也可能抛出异常。

  

如果

,则抛出ArgumentException            

如果

,则会引发MembershipPasswordException      
      
  • newPassword无法满足Active Directory服务器定义的复杂性要求。
  •   

要检查旧密码,您可以使用MembershipProvider.ValidateUser()方法。