私はカスタム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);