OperationContractAttribute.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 значение и нет других узких областей с параметрами уровня защиты, все сообщения в контракте операции шифруются и подписываются. Однако если одна из этих операций имеет ProtectionLevel значение 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контракта.