asp.net成员身份ResetPassword不起作用

时间:2011-06-06 04:54:56

标签: asp.net hash membership reset-password

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

2 个答案:

答案 0 :(得分:2)

将以下属性添加到Web.Config文件中的成员资格cofig部分。

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>

答案 1 :(得分:0)

我以错误的方式使用它,并得到了相同的错误,希望对您也有帮助。这是我的代码:

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();
}