首次尝试/成功登录后,.net成员身份验证失败

时间:2013-03-15 20:10:34

标签: .net authentication membership

我正在使用.net成员资格创建一个SSO系统。我已成功验证用户,但问题是,一旦用户登录,如果用户注销,然后尝试再次登录,则下一次登录尝试失败(“您的登录尝试未成功”)。

E.G。从默认登录页面(使用.net登录控件)用户登录/验证并重定向到loginstatus.aspx。用户从loginstatus.aspx注销(使用.net登录状态控件),并再次重定向到默认登录页面。用户尝试使用相同的凭据再次登录,身份验证失败。

在本地调试中,每次启动和停止调试时,都会“清除”该问题,用户只能再次进行身份验证。我也在服务器上尝试了这个,结果相同。此外,如果第一次身份验证尝试失败(密码错误),则在下次尝试时使用正确的密码时,用户无法登录。

我没有自定义或覆盖任何Login控件方法(虽然我在login.authenticate上尝试了membership.validateuser并遇到了同样的问题)。

我正在使用MySQLMembershipProvider的6.2.3.0版本(我已经阅读了有关Hashed密码和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"/>

1 个答案:

答案 0 :(得分:0)

事实证明,数据库模式存在一些问题。我更新到mysql连接器v 6.5.5.0,解析器抛出了一个关于mysqlroleprovider的错误&#34;缺少或不正确的架构&#34;,我让它自动生成架构,创建了新的架构(这次没有表名中的大写字母),问题似乎得到解决。