我想知道如何在不知道旧密码的情况下使用 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 中添加您用于提供程序的属性,但它似乎不适用于此处。