0

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

4

2 回答 2

2

将以下属性添加到您的 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>
于 2011-06-06T06:04:19.863 回答
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();
}
于 2019-08-01T11:33:26.440 回答