2012-02-09 97 views

回答

5

消息協定可以指示郵件的標題和/或正文是否應進行數字簽名和加密。

這是通過在MessageHeaderAttribute和MessageBodyMemberAttribute屬性上設置System.ServiceModel.MessageContractMemberAttribute.ProtectionLevel屬性來完成的。該屬性是System.Net.Security.ProtectionLevel類型的枚舉,可以設置爲None(無加密或簽名),Sign(僅數字簽名)或EncryptAndSign(加密和數字簽名)。默認值是EncryptAndSign。

要使這些安全功能正常工作,您必須正確配置綁定和行爲。如果您在沒有正確配置的情況下使用這些安全功能(例如,嘗試在未提供憑據的情況下對消息進行簽名),則驗證時會引發異常。

對於郵件標題,保護級別是爲每個標題單獨確定的。

對於消息正文部分,可以將保護級別視爲「最低保護級別」。不管身體部位的數量如何,身體只有一個保護等級。身體的防護等級由所有身體部位的最高ProtectionLevel屬性設置決定。但是,您應該將每個正文部分的保護等級設置爲所需的實際最低保護等級。有關更詳細的示例,請參閱this文章。