我创建了一个自定义 STS 登录应用程序,并且登录/注销功能运行良好。但是,如果我以某个用户身份登录并执行IISRESET,然后重新加载页面,则会出现以下错误。(但正如预期的那样,在我清除 cookie 并再次登录后它工作正常 :) )
STS 应用程序的 Apppool 用户是“A”,并且他从未登录到部署 STS 应用程序的服务器计算机(他在管理员组中并有权访问加密证书)。
我尝试以“A”身份登录到服务器(Windows Login),然后突然间这个问题就解决了。
谁能告诉为什么它在 IISRESET 之后不工作并且在 Windows 登录一次之后工作?
“/”应用程序中的服务器错误。
密钥在指定状态下无效。
[CryptographicException:密钥在指定状态下无效。]
System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode(Byte[] encoded)
[InvalidOperationException: 1D1073: A CryptographicException occurred when attempting to decrypt the cookie using the ProtectedData API (see inner exception for details).
Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode(Byte[] encoded) +433
Microsoft.IdentityModel .Tokens.SessionSecurityTokenHandler.ApplyTransforms(Byte] cookie, Boolean outbound) +189
Microsoft. IdentityModel .Tokens. SessionSecurityTokenHandler. ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver) +894
Microsoft. IdentityModel .Tokens. SessionSecurityTokenHandler. ReadToken(Byte]] token, SecurityTokenResolver tokenResolver) +118
Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenrrocCookie(Byte] sessionCookie) +363
Microsoft.IdentityModel.Web. SessionAuthenticationModule.TryReadSessionTokenFroaCookie(SessionSecurityToken& sessionToken) +124
Microsoft. IdentityModel .Web. SessionAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs eventArgs) +61
System.Web.SyncEventExecutionstep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System. Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
Version Information: Microsoft .NET Framework Version:4.D.30319; ASP NET Version:4.O.30319.272