【发布时间】:2014-06-24 19:26:41
【问题描述】:
我试过了:
runas /user: domain\user cmd 没有运气
这似乎只在现在重置 IIS 并且我尝试恢复浏览会话时发生。所以我登录到应用程序,我在服务器上重置 IIS,刷新页面并查看错误。
我正在使用 WIF 4.0 的安全令牌服务在 .NET 4.0 MVC 中构建应用程序。一切都按预期工作,除了这种情况。我什至尝试使用自定义错误页面,但错误也在那里发生。因此,我也无法显示自定义页面。此外,这是使用位于两个负载平衡服务器上的证书。这发生在我的开发环境中,其中仅包含一台服务器(应用程序、wfe、db 在那里运行)
我注意到的一件事是,如果我将 IIS APP Pool 用户切换回网络服务帐户,它就不会再抛出错误了。我们在应用程序中有一些限制(主要是网络相关),我们需要在我们的 AD 中为应用程序池部分使用帐户
有人有这个问题的经验吗?
密钥在指定状态下无效。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详情: System.Security.Cryptography.CryptographicException:密钥无效 在指定状态下使用。
来源错误:
在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪:
[CryptographicException:密钥在指定状态下无效。 ]
System.Security.Cryptography.ProtectedData.Unprotect(字节[] encryptedData,Byte[] optionalEntropy,DataProtectionScope 范围)+428 Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode(字节[] 编码)+54[InvalidOperationException:ID1073:发生 CryptographicException 尝试使用 ProtectedData API 解密 cookie 时(请参阅 有关详细信息的内部异常)。如果您使用的是 IIS 7.5,这可能是 由于正在设置应用程序池上的 loadUserProfile 设置 为假。 ]
Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode(字节[] 编码)+146
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms(字节 [] cookie,布尔出站)+113
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(XmlReader 阅读器,SecurityTokenResolver tokenResolver) +647
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(字节 [] 令牌,SecurityTokenResolver tokenResolver) +105
Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenFromCookie(字节 [] sessionCookie) +262
Microsoft.IdentityModel.Web.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken& sessionToken) +76
Microsoft.IdentityModel.Web.SessionAuthenticationModule.OnAuthenticateRequest(对象 发件人,EventArgs eventArgs) +53
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
【问题讨论】:
-
听起来像一个加密的连接字符串,这解释了为什么将应用程序池用户切换回 orig 可以解决问题。尝试解密字符串,然后更改应用程序池用户。
-
hmmm 很有趣,但我的连接字符串没有在任何地方加密。
标签: asp.net .net iis single-sign-on wif