2013-03-15 123 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「缺少或不正確的模式」的錯誤,我讓它自動生成模式,創建了新的模式(這次在表名中沒有大寫字母),並且問題似乎解決了。