【问题标题】:asp.net membership ResetPassword does not workasp.net 会员资格 ResetPassword 不起作用
【发布时间】:2011-06-06 04:54:56
【问题描述】:

当我想在 vb.net 或 c# 中使用 ResetPassword 方法时,它无法重置密码并发出一个异常提示:“提供的密码答案错误”。 我认为这是由哈希系统和哈希和盐的机器代码引起的。 我该如何解决这个问题?

【问题讨论】:

    标签: asp.net hash membership reset-password


    【解决方案1】:

    将以下属性添加到您的 Web.Config 文件中的会员配置部分。

    requiresQuestionAndAnswer="false"
    

    完整示例

    <configuration>
        <connectionStrings>
            <add name="SqlServices" 
                 connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial 
                 Catalog=aspnetdb;" />
        </connectionStrings>
        <system.web>
            <membership 
                 defaultProvider="SqlProvider"
                 userIsOnlineTimeWindow="20">
                 <providers>
                    <remove name="AspNetSqlProvider" />
                    <add name="SqlProvider"
                        type="System.Web.Security.SqlMembershipProvider"
                        connectionStringName="SqlServices"
                        enablePasswordRetrieval="false"
                        enablePasswordReset="true"
                        requiresQuestionAndAnswer="false"
                        passwordFormat="Hashed"
                        applicationName="/" />
                </providers>
            </membership>
        </system.web>
    </configuration>
    

    【讨论】:

    【解决方案2】:

    我用错了,也出现了同样的错误,希望对你也有帮助。这是我的代码:

    MembershipUser mu = Membership.GetUser(c.Username);
    
    if (mu.PasswordQuestion == c.Question)
    {
        string pwd = mu.ResetPassword(c.Answer);
        mu.ChangePassword(pwd, c.Password);
    
        return RedirectToAction("SignIn");
    }
    
    else
    {
        ViewBag.Message = "Error!";
        return View();
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多