当安全答案正确时,ASP.NET ResetPassword引发MembershipPasswordException
本文关键字:NET ASP ResetPassword 引发 MembershipPasswordException 安全 答案 | 更新日期: 2023-09-27 18:21:46
我试图实现一个问答密码重置页面,但这一行:
string tempPassword =
Membership.Provider.ResetPassword(username, TextBoxSecurityAnswer.Text);
正在引发MembershipPasswordException,即使传入的安全答案与用户名对应。基本异常是System.exception,它只是显示COMPlusExceptionCode,值为-532459699。
我正在使用MySql和他们的.NET Connector v6.2.5(这是我可以使用的最新版本,因为我的项目是.NET v3.5)。我的成员资格提供程序的web.config设置如下所示:
<membership defaultProvider="MySQLMembershipProvider" hashAlgorithmType="SHA1">
<providers>
<clear/>
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
connectionStringName="Membership"
applicationName="/"
passwordFormat="hashed"
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
requiresQuestionAndAnswer="true" />
</providers>
</membership>
有人知道发生了什么事吗?
好吧,我想通了。哇,我觉得自己很笨。但也许其他人也会做同样愚蠢的事。
我直接在数据库中为有问题的帐户更改了安全答案的数据,当我这样做时,数据库中不再对安全答案进行哈希处理。我想Membership Provider试图获取数据库中的内容,假设它被散列了,但它得出的结果与提供的答案不匹配,所以它抛出了异常。有道理。