60

メソッドの署名を評価すると、古いパスワードを変更する際に知っておく必要があります。

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

古いパスワードを知らずにパスワードを変更する方法はありますか。

4

10 に答える 10

117
 string username = "username";
 string password = "newpassword";
 MembershipUser mu = Membership.GetUser(username);
 mu.ChangePassword(mu.ResetPassword(), password);
于 2011-02-16T08:06:16.330 に答える
14

ユーザーのパスワードを変更する前にリセットし、生成されたパスワードを に渡す必要がありますChangePassword

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

またはインライン:

membershipUser.ChangePassword(membershipUser.ResetPassword(), userWrapper.Password)
于 2011-02-16T08:05:42.190 に答える
4

RequiresQuestionAndAnswer上記のソリューションはすべて、メンバーシップ システム構成でプロパティが false に設定されている場合にのみ機能することに注意してください。が true の場合RequiresQuestionAndAnswer、ResetPassword メソッドにセキュリティの回答を渡す必要があります。そうしないと、例外がスローされます。

RequiresQuestionAndAnswertrue に設定する必要がある場合は、この回避策を使用できます。

于 2013-12-04T18:58:38.167 に答える
4

簡単な SimpleMembershipProvider を使用してみてください。

var token = WebSecurity.GeneratePasswordResetToken("LoginOfUserToChange");
WebSecurity.ResetPassword(token, "YourNewPassword");
于 2013-09-09T11:43:15.037 に答える
1

123456 の代わりに、テキスト ボックスから設定するパスワードを使用します。

 MembershipUser user;     
 user = Membership.GetUser(userName,false);
 user.ChangePassword(user.ResetPassword(),"123456");
于 2012-03-01T05:43:21.620 に答える
0
string username = "UserName";
string userpassword = "NewPassword";
string resetpassword;
    
MembershipUser mu = Membership.GetUser(username, false);

if (mu == null){
    Response.Write("<script>alert('Invalid Username!')</script>"); 
}

else{
    resetpassword = mu.ResetPassword(username);
    if (resetpassword != null){
         if (mu.ChangePassword(resetpassword, userpassword)){
             Response.Write("<script>alert('Password changed successfully!')</script>"); 
         }
    }
    else{
           Response.Write("<script>alert('Oh some error occurred!')</script>"); 
        }
    }
于 2020-07-28T15:03:04.587 に答える