更改密码后 MembershipProvider 验证失败
MembershipProvider validation fails after password change
我正在使用 SQLMemberShipProvider。
当我输入用户名和密码时,将执行以下代码 membershipProvider.ValidateUser(myUserName, myPassword)
和 returns true
表示用户有效。
我使用以下代码重设了密码:
var username = membershipProvider.GetUser(myUserName, false);
username.ChangePassword(username.ResetPassword(), newPassword);
现在当我输入我的用户名和新修改的密码时,下面的命令再次执行membershipProvider.ValidateUser(myUserName, newPassword)
,但是这次验证失败。
我不明白这一点,因为我对 ValidateUser
的两次调用都使用相同的提供程序。密码似乎已更改,因为原始密码也不再有效。
密码格式经过哈希处理,IsLocked 为 false,IsApproved 为 true。
代码看起来不错。这很可能是因为您的 web.config:
中的 resetPassword 未设置为 true
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="MyApplication" />
</providers>
</membership>
确保已设置启用密码重置="true"。
我正在使用 SQLMemberShipProvider。
当我输入用户名和密码时,将执行以下代码 membershipProvider.ValidateUser(myUserName, myPassword)
和 returns true
表示用户有效。
我使用以下代码重设了密码:
var username = membershipProvider.GetUser(myUserName, false);
username.ChangePassword(username.ResetPassword(), newPassword);
现在当我输入我的用户名和新修改的密码时,下面的命令再次执行membershipProvider.ValidateUser(myUserName, newPassword)
,但是这次验证失败。
我不明白这一点,因为我对 ValidateUser
的两次调用都使用相同的提供程序。密码似乎已更改,因为原始密码也不再有效。
密码格式经过哈希处理,IsLocked 为 false,IsApproved 为 true。
代码看起来不错。这很可能是因为您的 web.config:
中的 resetPassword 未设置为 true<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="MyApplication" />
</providers>
</membership>
确保已设置启用密码重置="true"。