0

我们在网络场中运行了一个经过身份验证的 WCF 服务,该服务间歇性地抛出此错误:

MessageSecurityException:SecurityContextSecurityToken 的 Cookie 无效。处理 Cookie 时发生以下错误:“解码 SecurityContextSecurityToken 的 Cookie 元素时出错。”。---> CryptographicException:DataProtectionSecurityStateEncoder 无法解码字节数组。确保加载了“用户配置文件”,如果这是“网络场方案”,请确保所有服务器都以具有漫游配置文件的同一用户身份运行,或者提供自定义 SecurityStateEncoder。---> CryptographicException:密钥在指定状态下无效。

我花了很多时间研究上述内容,我相信我理解错误....但是我找不到有关如何配置DataProtectionSecurityStateEncoder的任何信息。

我想将编码器配置为使用本地计算机设置(我们已经同步了机器密钥等),但我完全卡住了。谁能指出我正确的方向?

4

1 回答 1

0

一个可能的解决方案的更新,我相信我们可以通过以下方式解决这个问题:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    OperationContext.Current.Host.Credentials.SecureConversationAuthentication.SecurityStateEncoder = new DataProtectionSecurityStateEncoder(false);
}

我们仍在对此进行测试,但是在我们解决一些已出现的高优先级问题时,此问题已被搁置。

在这里注意以防其他人有类似的问题,并且找不到解决方案(以及像我们一样在域外运行网络农场的人)。

当我们回到工作岗位时,我会回来更新这个答案。

于 2015-05-20T07:36:55.317 回答