2012-03-05 14 views
0

私はカスタムSSOソリューションを開発しており、FormsAuthentication.EncryptとFormsAuthentication.Decryptでいくつかの問題が発生しています。FormsAuthentication.DecryptがスクリプトとCSSで失敗する

ユーザーがHttpModuleで認証されると、FormsAuthenticationTicketオブジェクトが構築され、FormsAuthentication.Encryptでそのオブジェクトが暗号化され、Responseに設定されます。その後、私のサイトでのその後の呼び出しで、私はCookieの値を取得し、FormsAuthentication.Decryptを呼び出します。あなたが有効なユーザーのためのトークンを持っているなら、私は再認証を必要とせずにパスします。

Web.configsに静的なMachineKeyを設定しました。

問題は、InvalidEncryptedTicketエラーで、一部の.cssファイルと.jsファイル(すべてではないがアプリケーションの正当なものではない)でDecryptメソッドが失敗するという問題です。

これを引き起こす原因は何ですか?

//Encryption on successful authentication 
FormsAuthenticationTicket fmaTicket = new FormsAuthenticationTicket(0, ticket.TicketValue.ToString(), DateTime.Now, 
      DateTime.Now + new TimeSpan(0, 0, 20, 0), false, ticket.Principal); 
authCookie = new HttpCookie("AUTHTICKET", FormsAuthentication.Encrypt(fmaTicket)); 

//Decryption when cookie is present 
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); 

答えて

0

私が代わりをFormsAuthenticationの暗号化と復号化のRijindel管理の暗号化クラス(http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx)を使用するには、この切り替えそれ以上の問題はありませんでした。

関連する問題