我正在使用 .net 成员资格创建 SSO 系统。我已经成功验证了用户,但是,问题是一旦用户登录,如果用户注销,然后尝试再次登录,下一次登录尝试将失败(“您的登录尝试不成功”)。
EG 从默认登录页面,(使用 .net 登录控件)用户登录/验证并重定向到 loginstatus.aspx。用户从 loginstatus.aspx 注销(使用 .net 登录状态控件)并再次重定向到默认登录页面。用户尝试使用相同的凭据再次登录,身份验证失败。
在本地调试中,每次我开始和停止调试时,这都会“清除”问题并且用户只能再次进行身份验证。我也在服务器上尝试过,结果相同。此外,如果第一次身份验证尝试失败(密码错误),用户在下次尝试使用正确密码时将无法登录。
我没有自定义或覆盖任何登录控制方法(尽管我在 login.authenticate 上尝试了 members.validateuser 并遇到了同样的问题)。
我正在使用 MySQLMembershipProvider 的 6.2.3.0 版本(我已经阅读了有关散列密码和 MySqlMembershipProviders 的一些问题,但添加 SHA1 不会影响该问题,并且用户可以进行一次身份验证 - MySQL Forms Authentication Hashed password problem)。
调试可能发生的事情的任何提示?
这是我的 web.config 示例(我也使用了 AutoGenerate 机器密钥,问题仍然存在):
<membership defaultProvider="MySqlMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear/>
<add name="MySqlMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
connectionStringName="MySqlMembershipConnection"
applicationName="myapp"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="2"/>
</providers>
</membership>
<machineKey validationKey="AD45EA85C19163E399E0ACEBC5523A9C740EFFF42154518FCDFA349E415DF51894C2CA25ABF8CF419C9F206DBE4878118D8BE8CF4DAA2E9708E7296B288ED980"
decryptionKey="C1ECCEF762BABCC02A44CD50571C2C3EDF6E7E4F7208886ACE157EF22AFCA27A"
validation="SHA1" decryption="AES"/>