我有一个ASP.NET页面,允许管理员更改用户的密码。由于管理员不知道用户的密码,因此我使用以下命令:
MembershipUser member = Membership.GetUser(_usernameTextBox.Text); member.ChangePassword(member.ResetPassword(),_passNewTextBox.Text);
– 如SO question所述。
如果新密码不符合在web.config文件中配置的复杂性要求,则密码将被重置,但不会更改为所需的密码。如果新密码不符合复杂性要求,那么密码根本不应该改变。
有没有一种简单的方法来测试新密码的复杂性要求?
解决方法
您可以使用以下属性来测试密码:
> Membership.PasswordStrengthRegularExpression
> Membership.MinRequiredPasswordLength
> Membership.MinRequiredNonAlphanumericCharacters
请注意,如果您没有在web.config文件中配置密码,PasswordStrengthRegularExpression属性将为空字符串。
有关正则表达式匹配的信息,请参阅Regex.IsMatch(String)上的MSDN参考
感谢马特有帮助的意见。