2014-02-23 44 views
0

我使單點登錄,但它有錯誤,我知道所有web配置中的機器密鑰是相同的,身份驗證也是一樣的。但它只適用於不在主域中的子域。在global.ascx我的網站無法解密cookie並且無法驗證用戶並顯示此錯誤:無法驗證數據。
這是我的計算機密鑰:ASP身份驗證:無法驗證數據讀取錯誤和解密來自cookies的數據錯誤

<machineKey alidationKey="C50B3C8..96DB51F17C529AD3CABE" decryptionKey="8A9BE8FD67A...F2B72F" validation="SHA1"/> 

注: accounts.domain.com和eticket.domain.com正在工作,但domain.com沒有作用,並顯示此錯誤。
這些都是我在全球代碼和FormsAuthentication.Decrypt有此錯誤:

protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e) 
{ 
    if (FormsAuthentication.CookiesSupported == true) 
    { 
     if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) 
     { 
      try 
      { 
       //let us take out the username now     
       string username = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name; 

       //let us extract the roles from our own custom cookie 
       string roles = Class1 
        .GetUserRoles(username); 

       //Let us set the Pricipal with our user specific details 
       e.User = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(username, "Forms"), roles.Split(';')); 
      } 
      catch (Exception) 
      { 
       //somehting went wrong 
      } 


     } 
    } 

} 
+0

向我們展示你的'<認證>''從網絡節點。 config'。 – twoflower

回答

0

就會通過這個代碼解決了添加到<machinekey>compatibilityMode="Framework45"