WCF中SOAP消息的数字签名

我在4.0中有一个WCF服务。

我需要在SOAP响应中添加数字签名。我不太确定它应该如何实现。 我相信响应应该如下面的链接所示。

https://spaces.internet2.edu/display/ISWG/Signed+SOAP+Messages

我有什么地方可以获得这方面的细节吗? 请指教。

消息合同可以指示消息的标题和/或正文是否应该进行数字签名和加密。

这是通过在MessageHeaderAttribute和MessageBodyMemberAttribute属性上设置System.ServiceModel.MessageContractMemberAttribute.ProtectionLevel属性来完成的。 该属性是System.Net.Security.ProtectionLevel类型的枚举,可以设置为None(无加密或签名),Sign(仅限数字签名)或EncryptAndSign(加密和数字签名)。 默认值为EncryptAndSign。

要使这些安全function起作用,您必须正确配置绑定和行为。 如果在没有正确配置的情况下使用这些安全function(例如,尝试在不提供凭据的情况下对消息进行签名),则会在validation时抛出exception。

对于邮件标题,将为每个标题单独确定保护级别。

对于消息正文部分,保护级别可以被认为是“最低保护级别”。 无论身体部位的数量如何,身体只有一个保护等级。 身体的保护级别由所有身体部位的最高ProtectionLevel属性设置决定。 但是,您应该将每个身体部位的保护级别设置为所需的实际最低保护级别。 有关更多详细示例,请参阅此文章。