2013-03-15 128 views
0

我使用.net成员身份创建SSO系统。我已经成功地对用户进行了身份验证,但是,问题在于,一旦用户登录,如果用户注销,然后尝试再次登录,则下次登录尝试失败(“您的登录尝试未成功”)。。第一次尝试/成功登录后,net membership身份验证失败

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的样品(我也用自动生成机键,问题仍然存在):

<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"/> 

回答

0

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