我试过了:
runas / user:domain \ user cmd没有运气
这似乎只在IIS重置并且我尝试恢复浏览会话时才会发生。所以我登录到应用程序,我在服务器上重置IIS,刷新页面并看到错误。
我正在使用WIF 4.0的安全令牌服务在.NET 4.0 MVC中构建应用程序。除了这种情况,一切都按预期工作。我甚至尝试使用自定义错误页面,但错误也在那里发生。因此,我无法显示自定义页面。此外,这是使用位于两个负载平衡服务器上的证书。这发生在我的开发环境中,它只包含一个服务器(app,wfe,db在那里运行)
我注意到的一件事是,如果我将我的IIS APP池用户切换回网络服务帐户,它不再抛出错误。我们在应用程序中有一些限制(主要是与网络相关),我们需要在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(字节[] token,SecurityTokenResolver tokenResolver)+105
Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenFromCookie(字节[] sessionCookie)+262
Microsoft.IdentityModel.Web.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken&安培; sessionToken)+76
Microsoft.IdentityModel.Web.SessionAuthenticationModule.OnAuthenticateRequest(对象 sender,EventArgs eventArgs)+53
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+75
答案 0 :(得分:-1)
此问题与会话cookie有关。 WIF默认使用DAPI保护会话Cookie,而DAPI与机器密钥紧密相关。
如果用于加密会话cookie的密钥发生更改,它将引发此异常。
它也可能与您的应用托管基础架构有关。
有关此方案的更多详细信息,在这里:
所以, 如果您的应用程序在NLB env中运行,则可以:
关于自动生成的机器密钥设置,请参阅: https://gyorgybalassy.wordpress.com/2013/12/07/how-unique-is-your-machine-key/