联合身份验证和“加密操作期间发生错误”

时间:2013-04-05 16:42:45

标签: asp.net .net federated-identity

当我尝试在ASP.NET MVC应用程序上获取主页时出现此异常。

  

[CryptographicException:加密期间发生错误   操作]
  System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors(Func`2   func,Byte []输入)+246
  System.IdentityModel.Services.MachineKeyTransform.Decode(字节[]   编码)+191
  System.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms(字节[]   cookie,布尔值出站)+173
  System.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(的XmlReader   读者,SecurityTokenResolver tokenResolver)+756
  System.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(字节[]   token,SecurityTokenResolver tokenResolver)+100
  System.IdentityModel.Services.SessionAuthenticationModule.ReadSessionTokenFromCookie(字节[]   sessionCookie)+1164
  System.IdentityModel.Services.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken&安培;   sessionToken)+287
  System.IdentityModel.Services.SessionAuthenticationModule.OnAuthenticateRequest(对象   sender,EventArgs eventArgs)+231
  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+165

据我所知,SessionAuthenticationModule的cookie出了问题。如果您清除了Cookie(如此处所述Federated Authentication on Azure),则可以使用。我想要的是了解发生了什么,如何捕捉异常并解决问题。

2 个答案:

答案 0 :(得分:16)

发布时,cookie包含使用当前machineKey加密的安全令牌。当前一个版本的cookie被发送回服务器时,SAM(更准确地说是令牌处理程序)尝试使用machineKey的新值来解密它,这会导致错误。 在相关帖子(Federated Authentication on Azure)中检查我的答案以缓解错误。 HTH

答案 1 :(得分:3)

我遇到了同样的问题。 我刚清除了所有浏览器的Cookie 缓存数据,它已修复。