0

我正在使用 .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"/>
4

1 回答 1

0

结果发现数据库模式有些问题。我更新到 mysql 连接器 v 6.5.5.0,解析器抛出一个关于 mysqlroleprovider “缺少或不正确的模式”的错误,我让它自动生成模式,创建了新模式(这次表名中没有大写字母),问题似乎解决了。

于 2013-03-18T18:59:22.397 回答