【发布时间】:2010-09-12 09:21:53
【问题描述】:
我正在服务之间构建一些路由功能。原始服务和做路由的服务具有相同的配置;两者都使用带有以下绑定配置的 netTcpBinding:
netTcpBinding
安全模式="消息"
消息clientCredentialType="用户名"
服务行为使用我们在机器上安装的 AspNet Membership Provider 和客户端证书。
当我关闭消息安全时,它会很好地中继,但是当它打开时,我得到以下异常:
“无法处理消息。这很可能是因为操作 'http://foo/Whatever' 不正确,或者因为 消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配*。如果服务因不活动而中止通道,则安全上下文令牌将无效。为防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。 (强调我的)
我的想法是证书在消息上运行了两次(一次在原始调用上,然后在中继上),这就是破坏消息安全令牌的原因。
问题:
我的想法是否正确?
有没有办法继续使用消息安全性进行路由,而无需令牌服务的复杂性?
【问题讨论】:
-
两个问题 - 1. 您需要路由器服务的安全性吗?从某种意义上说,消息安全的想法是它允许路由等处理消息而不必解密它。 2.是你在路由器服务上遇到的错误吗?两种服务是否共享相同的服务证书?
标签: wcf security certificate wcf-routing