加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在ASP.NET Membership中,为什么resetPassword会导致“指定

发布时间:2020-12-15 19:56:59 所属栏目:百科 来源:网络整理
导读:使用System.Web.Security; 我在MVC4中创建了一个resetPassword表单: using System.Web.Security;[HttpPost][AllowAnonymous]public ActionResult ResetPassword(ResetPasswordModel model){ MembershipUser u = Membership.GetUser(model.Username); if (Ha
使用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");
}

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

string resetCode = u.ResetPassword();

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

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

解决方法

如果您使用的是 SimpleMembershipProvider,那么是:

By design,the SimpleMembershipProvider class does not implement the
full range of functionality that is possible in ASP.NET membership
providers,as defined in the MembershipProvider class that is used by
all ASP.NET membership providers. Some members are available in the
class because they are inherited from the base class,but will throw
an exception if you access them.

另一种方法是使用SqlMembershipProvider

你应该在你的web.config中有类似的东西:

<membership defaultProvider="SqlProvider"
      userIsOnlineTimeWindow="15">
      <providers>
        <add 
          name="SqlProvider" 
          type="System.Web.Security.SqlMembershipProvider" 
          connectionStringName="SqlServices"
          applicationName="MyApplication"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          requiresUniqueEmail="false"
          passwordFormat="Hashed"
          maxInvalidPasswordAttempts="5"
          passwordAttemptWindow="10" />
      </providers>
    </membership>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读