2011-01-28 61 views
1

我们有一个基于https的WCF 4.0服务,允许客户端签署消息以标识自己。然后,我们可以使用该证书为客户提供后端的适当权利。这在WCF 4.0客户端发送请求时正常工作,但是当非WCF尝试发送请求时,它会失败,并显示以下内容:CryptographicException:无法解析签名中的'#Id- {Guid goes here}'URI来计算摘要。在检查客户端请求时,只要有任何超过“收件人”和“时间戳”节点的签名,就会发生此故障。非WCF客户端期望签署正文,Action,MessageID和ReplyTo部分。 WCF可以配置为期望并允许这些签名,或者,更好的是,如果他们在那里,允许他们,但如果他们不在,则不会犯错误?WCF拒绝带有附加签名元素的消息

服务配置文件:

​​

回答

0

与微软合作后,答案似乎是,你不能使用CertificateOverTransport并签署消息体,这正是我们的客户正在试图做的。我们转移到MutualCertificateDuplex并将我们对ProtectionLevel.None的响应的保护级别更改(因为我们对签名响应不感兴趣)。我们现在能够收到请求并通过https获得响应,因此我们仍然可以依靠传输进行加密,而消息的安全性保留在消息级别,而不是传输级别。

希望这可以帮助别人,这似乎在WCF互操作场景中相当常见,但在网络上没有关于此的大量指导。