1

我创建了一个自定义 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
4

1 回答 1

1

如果您使用默认 WIF 配置运行,则用于保护会话令牌的密钥通过 DPAPI 处理并存储在用户配置文件中。这些键在 iisreset 上更改,除非您将 IIS 配置为“加载用户配置文件”为 true。

如果您在 .NET 4.5 上运行,最简单的方法是为您的应用程序配置 machineKeys 并使用新的MachineKeySessionSecurityTokenHandler,如Wif 和 Web Farms中所述。

于 2014-03-15T16:48:10.850 回答