Lal*_*lit 58 asp.net asp.net-membership change-password forgot-password
评估方法签名时,需要在更改密码时知道旧密码.
membershipUser.ChangePassword(userWrapper.OldPassword, userWrapper.Password)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不知道旧密码的情况下更改密码.
ajm*_*jma 112
string username = "username";
string password = "newpassword";
MembershipUser mu = Membership.GetUser(username);
mu.ChangePassword(mu.ResetPassword(), password);
Run Code Online (Sandbox Code Playgroud)
Rob*_*rch 23
这里的其他答案是正确的,但可以将密码保留为未知状态.
ChangePassword
如果密码不符合Web.Config中规定的要求(最小长度等),将抛出异常.但它只有在ResetPassword
被调用后才会失败,因此原始用户或尝试更改密码的人不会知道密码.在更改密码之前检查复杂性要求以避免这种情况:
var user = Membership.GetUser(userName, false);
if ((newPassword.Length >= Membership.MinRequiredPasswordLength) &&
(newPassword.ToCharArray().Count(c => !Char.IsLetterOrDigit(c)) >=
Membership.MinRequiredNonAlphanumericCharacters) &&
((Membership.PasswordStrengthRegularExpression.Length == 0) ||
Regex.IsMatch(newPassword, Membership.PasswordStrengthRegularExpression))) {
user.ChangePassword(user.ResetPassword(), newPassword);
} else {
// Tell user new password isn't strong enough
}
Run Code Online (Sandbox Code Playgroud)
Geo*_*ord 14
您需要在更改前重置用户密码,并将生成的密码传递给ChangePassword
.
string randompassword = membershipUser.ResetPassword();
membershipUser.ChangePassword(randompassword , userWrapper.Password)
Run Code Online (Sandbox Code Playgroud)
或内联:
membershipUser.ChangePassword(membershipUser.ResetPassword(), userWrapper.Password)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43850 次 |
最近记录: |