ServiceContractAttribute.ProtectionLevel Właściwość

Definicja

Określa, czy powiązanie kontraktu musi obsługiwać wartość ProtectionLevel właściwości.

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

Wartość właściwości

ProtectionLevel Jedna z wartości. Wartość domyślna to None.

Wyjątki

Wartość nie jest jedną z ProtectionLevel wartości.

Uwagi

ProtectionLevel Użyj właściwości , aby określić stopień, w jakim powiązanie kontraktu wymaga szyfrowania, podpisów cyfrowych lub obu dla punktów końcowych, które uwidaczniają kontrakt. Wartość ustawiona w tym miejscu jest wartością domyślną dla wszystkich komunikatów operacji, w tym błędów.

Należy pamiętać, że zachowanie ochrony w czasie wykonywania jest kombinacją wartości na poziomie ochrony ustawionych na następujących właściwościach. Te właściwości mają strukturę hierarchiczną. Ustawienie najbardziej zewnętrznej wartości określa ustawienie domyślne dla wszystkich węższych zakresów, chyba że jawnie ustawiono inną wartość dla węższego zakresu. W tym przypadku wartość zewnętrzna pozostaje wartością domyślną dla wszystkich węższych zakresów z wyjątkiem tego specjalnie ustawionego.

Jeśli na przykład ServiceContractAttribute.ProtectionLevel ustawiono wartość ProtectionLevel.EncryptAndSign i żadne inne węższe zakresy nie mają ustawień poziomu ochrony, wszystkie komunikaty w kontrakcie operacji są szyfrowane i podpisane. Jeśli jednak jedna z tych operacji ma ustawioną OperationContractAttribute wartość ProtectionLevel.Sign, komunikaty dla tej operacji są podpisane, ale wszystkie inne komunikaty w kontrakcie są szyfrowane i podpisane.

Aby uzyskać szczegółowe informacje na temat poziomów ochrony oraz ich założeń i zakresów, zobacz Understanding Protection Level (Omówienie poziomu ochrony).

Zakresy, w których są ustawione następujące wartości:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

Właściwość MessageContractMemberAttribute.ProtectionLevel na System.ServiceModel.MessageHeaderAttribute.

Właściwość MessageContractMemberAttribute.ProtectionLevel na System.ServiceModel.MessageBodyMemberAttribute.

Jeśli w umowie nie określono jawnie poziomu ochrony, a bazowe powiązanie obsługuje zabezpieczenia (zarówno na poziomie transportu, jak i komunikatu), efektywnym poziomem ochrony dla całego kontraktu jest ProtectionLevel.EncryptAndSign. Jeśli powiązanie nie obsługuje zabezpieczeń (takich jak BasicHttpBinding), obowiązująca System.Net.Security.ProtectionLevel jest ProtectionLevel.None dla całej umowy. W zależności od powiązania punktu końcowego klienci mogą wymagać innej ochrony zabezpieczeń na poziomie komunikatu lub transportu, nawet jeśli kontrakt określa ProtectionLevel.Nonewartość .

Dotyczy