c# – 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.

要使这些安全功能起作用,您必须正确配置绑定和行为.如果在没有正确配置的情况下使用这些安全功能(例如,尝试在不提供凭据的情况下签署消息),则会在验证时抛出异常.

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

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

转载注明原文:c# – WCF中SOAP消息的数字签名 - 代码日志