C# Webmatrix重置密码

C# Webmatrix重置密码,c#,asp.net-mvc-4,membership-provider,simplemembership,C#,Asp.net Mvc 4,Membership Provider,Simplemembership,我想知道如何在不知道旧密码的情况下使用mvc4提供程序设置密码 我想做一个忘记密码功能,用户通过电子邮件收到一个安全链接,然后单击该链接,直接进入我的应用程序,然后只需填写新密码,不需要任何安全问题 使用mvc3附带的成员资格提供程序很容易做到这一点。我现在正在使用mvc4附带的简单成员资格提供程序,但我很难让它正常工作 到目前为止,代码看起来非常简单: MembershipUser user = Membership.GetUser( cust.Email );

我想知道如何在不知道旧密码的情况下使用mvc4提供程序设置密码

我想做一个忘记密码功能,用户通过电子邮件收到一个安全链接,然后单击该链接,直接进入我的应用程序,然后只需填写新密码,不需要任何安全问题

使用mvc3附带的成员资格提供程序很容易做到这一点。我现在正在使用mvc4附带的简单成员资格提供程序,但我很难让它正常工作

到目前为止,代码看起来非常简单:

MembershipUser user = Membership.GetUser( cust.Email );
                String pass = user.GetPassword();

                Boolean success = WebSecurity.ChangePassword( cust.Email, pass, model.Password );
它当前在调用GetPassword()的上面一行中给出错误,错误如下:

不支持指定的方法

我还将在web.config中显示相关部分:

<system.web>
      <roleManager enabled="true" defaultProvider="SimpleRoleProvider">
          <providers>
              <clear/>
              <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
          </providers>
      </roleManager>
      <membership defaultProvider="SimpleMembershipProvider">
          <providers>
              <clear/>
              <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"
       enablePasswordRetrieval="true" enablePasswordReset="true" passwordFormat="Encrypted" requiresQuestionAndAnswer="false"
       requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0"
       passwordAttemptWindow="10" />
          </providers>
      </membership>


上面我尝试添加mvc3中提供程序使用的属性,但在这里似乎不适用。

WebSecurity.GeneratePasswordResetToken
生成并返回唯一的字符串

WebSecurity.ResetPassword
使用该令牌更改密码


为用户提供一个以令牌为参数的操作链接,然后为他们提供一个更改密码的简单表单。

我很高兴它这么简单。约翰说:)我把ConfirmAccount和ResetPassword方法搞混了……能够只使用(令牌、新密码)密码,而不必关心其他任何事情,真是太好了。别忘了添加一个秘密问题字段。