FaultContractAttribute.ProtectionLevel 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定 SOAP 错误要求的绑定的保护级别。
public:
property System::Net::Security::ProtectionLevel ProtectionLevel { System::Net::Security::ProtectionLevel get(); void set(System::Net::Security::ProtectionLevel value); };
public System.Net.Security.ProtectionLevel ProtectionLevel { get; set; }
member this.ProtectionLevel : System.Net.Security.ProtectionLevel with get, set
Public Property ProtectionLevel As ProtectionLevel
属性值
ProtectionLevel 值之一。 默认值为 None。
注解
使用 FaultDescription.ProtectionLevel 属性指定发送 SOAP 错误时绑定必须加密和/或签名的程度。 强烈建议操作错误显式确定协定上的安全保护级别要求。 默认保护级别为 ProtectionLevel.None,这意味着你定义的 SOAP 错误消息不需要加密或数字签名 (尽管绑定可能提供此支持(如果将其配置为) )。 如果错误消息包含敏感信息或可能导致安全问题的信息,则强烈建议将 ProtectionLevel 属性设置为 ProtectionLevel.EncryptAndSign。 有关安全问题的详细信息,请参阅 了解保护级别。
运行时的保护行为是具有层次结构的保护级别属性的组合。 除非已为较窄范围显式设置了某个不同的值,否则设置最外层的值将为所有较窄的范围确定默认设置。 在这种情况下,外层的值将保持所有较窄的范围的默认设置,但特定的设置除外。
例如,如果 ServiceContractAttribute.ProtectionLevel 设置为 ProtectionLevel.EncryptAndSign ,并且没有其他较窄的范围具有保护级别设置,则操作协定中的所有消息都会加密和签名,包括错误消息。 但是,如果其中一个操作 OperationContractAttribute 的 设置为 ProtectionLevel.Sign,则对该操作的消息进行签名,但协定中的所有其他消息都已加密和签名,包括错误消息。
这些值的设置范围是:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
MessageContractMemberAttribute.ProtectionLevel 上的 System.ServiceModel.MessageHeaderAttribute 属性。
MessageContractMemberAttribute.ProtectionLevel 上的 System.ServiceModel.MessageBodyMemberAttribute 属性。
当协定上没有显式指定保护级别并且基础绑定支持安全性时(无论处于传输级别还是处于消息级别),整个协定的有效保护级别将为 ProtectionLevel.EncryptAndSign。 如果绑定不支持安全性(如 BasicHttpBinding),则整个协定的有效 System.Net.Security.ProtectionLevel 为 ProtectionLevel.None。 因此,根据终结点绑定,即使协定指定了 ProtectionLevel.None,客户端也可以要求不同的消息或传输级别安全保护。