【发布时间】:2011-06-06 04:54:56
【问题描述】:
当我想在 vb.net 或 c# 中使用 ResetPassword 方法时,它无法重置密码并发出一个异常提示:“提供的密码答案错误”。
我认为这是由哈希系统和哈希和盐的机器代码引起的。
我该如何解决这个问题?
【问题讨论】:
标签: asp.net hash membership reset-password
当我想在 vb.net 或 c# 中使用 ResetPassword 方法时,它无法重置密码并发出一个异常提示:“提供的密码答案错误”。
我认为这是由哈希系统和哈希和盐的机器代码引起的。
我该如何解决这个问题?
【问题讨论】:
标签: asp.net hash membership reset-password
将以下属性添加到您的 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>
【讨论】:
我用错了,也出现了同样的错误,希望对你也有帮助。这是我的代码:
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();
}
【讨论】: