在ASP.NET Membership中,为什么resetPassword会导致"指定的方法不受支持"错误?

Hai*_*ter 3 c# asp.net-membership asp.net-mvc-4

使用System.Web.Security;

我在MVC4中创建了一个resetPassword表单:

using System.Web.Security;

[HttpPost]
[AllowAnonymous]
public ActionResult ResetPassword(ResetPasswordModel model)
{
    MembershipUser u = Membership.GetUser(model.Username);

    if (HashResetParams(u.UserName, u.ProviderUserKey.ToString()) == model.Key)
    {
        string resetCode = u.ResetPassword();
        u.ChangePassword(resetCode, model.Password);
    }

    return View("ChangePasswordSuccess");
}
Run Code Online (Sandbox Code Playgroud)

知道为什么我点击线路时出现"ResetPassword-指定的方法不支持"错误:

string resetCode = u.ResetPassword();
Run Code Online (Sandbox Code Playgroud)

我想知道它是否与MVC4项目默认使用SimpleMembership实现有关.

另外,我已经看到了如何在ASP.NET成员资格中重置密码的各种方法,也许有更好的方法?

zje*_*rry 20

尝试使用:

string token = WebSecurity.GeneratePasswordResetToken(userName);
WebSecurity.ResetPassword(token, newPassword);
Run Code Online (Sandbox Code Playgroud)

  • 这应该是答案. (5认同)