メソッドの署名を評価すると、古いパスワードを変更する際に知っておく必要があります。
membershipUser.ChangePassword(userWrapper.OldPassword, userWrapper.Password)
古いパスワードを知らずにパスワードを変更する方法はありますか。
メソッドの署名を評価すると、古いパスワードを変更する際に知っておく必要があります。
membershipUser.ChangePassword(userWrapper.OldPassword, userWrapper.Password)
古いパスワードを知らずにパスワードを変更する方法はありますか。
string username = "username";
string password = "newpassword";
MembershipUser mu = Membership.GetUser(username);
mu.ChangePassword(mu.ResetPassword(), password);
ユーザーのパスワードを変更する前にリセットし、生成されたパスワードを に渡す必要がありますChangePassword
。
string randompassword = membershipUser.ResetPassword();
membershipUser.ChangePassword(randompassword , userWrapper.Password)
またはインライン:
membershipUser.ChangePassword(membershipUser.ResetPassword(), userWrapper.Password)
RequiresQuestionAndAnswer
上記のソリューションはすべて、メンバーシップ システム構成でプロパティが false に設定されている場合にのみ機能することに注意してください。が true の場合RequiresQuestionAndAnswer
、ResetPassword メソッドにセキュリティの回答を渡す必要があります。そうしないと、例外がスローされます。
RequiresQuestionAndAnswer
true に設定する必要がある場合は、この回避策を使用できます。
簡単な SimpleMembershipProvider を使用してみてください。
var token = WebSecurity.GeneratePasswordResetToken("LoginOfUserToChange");
WebSecurity.ResetPassword(token, "YourNewPassword");
123456 の代わりに、テキスト ボックスから設定するパスワードを使用します。
MembershipUser user;
user = Membership.GetUser(userName,false);
user.ChangePassword(user.ResetPassword(),"123456");
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>");
}
}