2012-02-09 74 views

回答

5

消息协定可以指示邮件的标题和/或正文是否应进行数字签名和加密。

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

要使这些安全功能正常工作,您必须正确配置绑定和行为。如果您在没有正确配置的情况下使用这些安全功能(例如,尝试在未提供凭据的情况下对消息进行签名),则验证时会引发异常。

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

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