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 одной из этих операций присвоено значение 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.