20

I got this exception when I try get my home page on ASP.NET MVC application.

[CryptographicException: Error occurred during a cryptographic operation.]
System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors(Func`2 func, Byte[] input) +246
System.IdentityModel.Services.MachineKeyTransform.Decode(Byte[] encoded) +191
System.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms(Byte[] cookie, Boolean outbound) +173
System.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver) +756
System.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(Byte[] token, SecurityTokenResolver tokenResolver) +100
System.IdentityModel.Services.SessionAuthenticationModule.ReadSessionTokenFromCookie(Byte[] sessionCookie) +1164
System.IdentityModel.Services.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken& sessionToken) +287
System.IdentityModel.Services.SessionAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs eventArgs) +231
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

From what I understand something get wrong in the cookie for SessionAuthenticationModule. If you clear the cookies (as stated already here Federated Authentication on Azure) it works. What I would like is to understand what is going on, how to catche the exceptions and fix the issue.

Community
  • 1
  • 1
Dave
  • 1,835
  • 4
  • 26
  • 44
  • How do you issue cookies? – Wiktor Zychla Apr 05 '13 at 16:49
  • Is your app on Azure? – Simon Halsey Apr 05 '13 at 16:54
  • @WiktorZychla: They were from a previous build and cached in my browser – Dave Apr 05 '13 at 16:57
  • @SimonHalsey: Yes they will be but for now they are run locally with the compute emulator, iis express, ... – Dave Apr 05 '13 at 16:58
  • 1
    Sounds like a duplicate of this then http://stackoverflow.com/questions/14119965/federated-authentication-on-azure – Wiktor Zychla Apr 05 '13 at 17:46
  • @WiktorZychla: Same problem I guess but wrong solution. We can't ask everyone to clean there cache when we see this error. What I would like is to understand what is going on, how to catche the exceptions and fix the issue. – Dave Apr 05 '13 at 18:42
  • Thr easiest workaround would be to change the name of the cookie in your cookie section of federation settings. This way old cookies would be discarded at the server side. – Wiktor Zychla Apr 05 '13 at 19:47

2 Answers2

17

The cookie, when issued, contains security token encrypted using the current machineKey. When the cookie from the previous build is sent back to server, SAM (more precisely the token handler) tries to decrypt it using the new value of machineKey which causes the error. Check my answer in the related post (Federated Authentication on Azure) to mitigate the error. HTH

Community
  • 1
  • 1
eXavier
  • 4,821
  • 4
  • 35
  • 57
4

I faced the same problem. I just cleared all of browser's cookies and cache data and it got fixed.

Baqer Naqvi
  • 6,011
  • 3
  • 50
  • 68