asp.net会员在不知道旧密码的情况下更改密码

 2023-02-16    307  

问题描述

评估方法签名,需要在更改它的同时知道旧密码.

membershipUser.ChangePassword(userWrapper.OldPassword, userWrapper.Password)

是否有任何方法可以在不知道旧的情况下更改密码.

asp.net会员在不知道旧密码的情况下更改密码

推荐答案

string username = "username";
 string password = "newpassword";
 MembershipUser mu = Membership.GetUser(username);
 mu.ChangePassword(mu.ResetPassword(), password);

其他推荐答案

此处的其他答案是正确的,但可以将密码留在未知状态.

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
}

其他推荐答案

您需要在更改它之前重置用户的密码,并将生成的密码传递给ChangePassword.

string randompassword = membershipUser.ResetPassword();
membershipUser.ChangePassword(randompassword , userWrapper.Password)

或内联:

membershipUser.ChangePassword(membershipUser.ResetPassword(), userWrapper.Password)

以上所述是小编给大家介绍的asp.net会员在不知道旧密码的情况下更改密码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33865.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。