19

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

[CryptographicException:加密操作期间发生错误。]
System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors(Func`2 func, Byte[] input) +246
System.IdentityModel.Services.MachineKeyTransform.Decode(Byte[] 编码) +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[] 令牌,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

据我了解,SessionAuthenticationModule 的 cookie 出现问题。如果您清除 cookie(如已在 Azure 上的联合身份验证中所述),它将起作用。我想了解发生了什么,如何捕获异常并解决问题。

4

2 回答 2

16

cookie 在发出时包含使用当前 machineKey 加密的安全令牌。当来自先前构建的 cookie 被发送回服务器时,SAM(更准确地说是令牌处理程序)尝试使用导致错误的 machineKey 的新值对其进行解密。检查我在相关帖子(Azure 上的联合身份验证)中的答案以减轻错误。高温高压

于 2013-04-24T21:46:01.567 回答
4

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

于 2016-07-19T14:39:52.400 回答