FormsAuthentication.Decrypt失败的脚本和CSS

时间:2012-03-05 21:43:46

标签: .net asp.net-mvc iis-7.5 httpmodule

我正在开发一个自定义SSO解决方案,并遇到FormsAuthentication.Encrypt和FormsAuthentication.Decrypt的一些问题。

当用户在我的HttpModule中进行身份验证时,我构建了一个FormsAuthenticationTicket对象,使用FormsAuthentication.Encrypt加密它并在Response上设置它。然后在我的网站上的后续调用中,我获取cookie值并调用FormsAuthentication.Decrypt。如果你有一个有效用户的令牌,我会通过你而不需要重新认证。

我在Web.configs中设置了一个静态MachineKey。

问题是,对于某些页面,Decrypt方法对于某些.css和.js文件(尽管不是全部,但不是应用程序的主要部分)都会失败,并出现InvalidEncryptedTicket错误。

任何人都知道会导致什么原因?

//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);

1 个答案:

答案 0 :(得分:0)

我将其切换为使用Rijindel管理加密类(http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx)而不是FormsAuthentication加密和解密,并且没有更多的问题。