为什么在某些情况下WCF SoapFault响应是加密的?

前端之家收集整理的这篇文章主要介绍了为什么在某些情况下WCF SoapFault响应是加密的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个WCF Web服务,其请求/响应应该只签名.
为此,在我设置的ServiceContract属性
ProtectionLevel = ProtectionLevel.Sign

这没问题.

由于要求,一些SoapFaults应该从服务中抛出;两种类型的SoapFaults:

>与申请有关
>与WS-Addressing相关(例如缺少MessageID)

为此,我使用处理SoafFaults的常规方法:创建一个IErrorHandler,其中使用MessageFault.CreateFault创建Message实例.

几乎所有返回的SoapFault都没有加密(这对我来说没问题),
我的问题是为什么行动=“http://www.w3.org/2005/08/addressing/fault”或“http://www.w3.org/2005/08/addressing/soap/fault”的加密?

解决方法

查看 http://msdn.microsoft.com/en-us/library/aa347791.aspxhttp://msdn.microsoft.com/en-us/library/system.servicemodel.faultcontractattribute.aspx.
它说明了这一点

If you select a binding that enables security and you do not set the
ProtectionLevel property anywhere on the contract,all application
data will be encrypted and signed.

我猜默认情况下的内置类型使用此行为.您可以通过查看实际抛出的异常来验证这一点.

原文链接:https://www.f2er.com/html/226937.html

猜你在找的HTML相关文章