ServiceContractAttribute.ProtectionLevel Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, должна ли привязка контракта поддерживать значение ProtectionLevel свойства.
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.
Исключения
Значение не является одним из значений ProtectionLevel .
Комментарии
ProtectionLevel Используйте свойство, чтобы указать степень, в которой привязка контракта требует шифрования, цифровых подписей или обоих конечных точек, предоставляющих контракт. Здесь задано значение по умолчанию для всех сообщений операций, включая ошибки.
Важно помнить, что поведение защиты во время выполнения — это сочетание значений уровня защиты, заданных в следующих свойствах. Эти свойства имеют иерархическую структуру. Установка самого внешнего значения устанавливает параметр по умолчанию для всех узких областей, если только не задано явно другое значение для более узкой области. В этом случае внешнее значение остается значением по умолчанию для всех узких областей, за исключением этого конкретного набора.
Например, если ServiceContractAttribute.ProtectionLevel задано ProtectionLevel.EncryptAndSign значение и нет других узких областей с параметрами уровня защиты, все сообщения в контракте операции шифруются и подписываются. Однако если одна из этих операций имеет OperationContractAttribute значение set ProtectionLevel.Sign, то сообщения для этой операции подписаны, но все остальные сообщения в контракте шифруются и подписываются.
Дополнительные сведения о уровнях защиты и их допущениях и областях см. в разделе "Общие сведения о уровне защиты".
Области, в которых задаются эти значения:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
System.ServiceModel.MessageHeaderAttributeСвойство MessageContractMemberAttribute.ProtectionLevel в .
System.ServiceModel.MessageBodyMemberAttributeСвойство MessageContractMemberAttribute.ProtectionLevel в .
Если уровень защиты явно не указан в контракте, а базовая привязка поддерживает безопасность (будь то на уровне транспорта или сообщения), то уровень эффективной защиты для всего контракта не указан ProtectionLevel.EncryptAndSign. Если привязка не поддерживает безопасность (например BasicHttpBinding, действует System.Net.Security.ProtectionLevelProtectionLevel.None для всего контракта). Результатом является то, что в зависимости от привязки конечной точки клиенты могут требовать разные сообщения или защиту уровня безопасности транспорта даже при указании ProtectionLevel.Noneконтракта.