Udostępnij za pośrednictwem


OperationContractAttribute.ProtectionLevel Właściwość

Definicja

Pobiera lub ustawia wartość określającą, czy komunikaty operacji muszą być szyfrowane, podpisane, czy oba.

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 ProtectionLevel 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 kontrolować, czy komunikaty operacji muszą być szyfrowane, podpisane, czy oba. Ustawiona tutaj wartość domyślna dla wszystkich komunikatów określonych dla tej operacji, chyba że węższy zakres zastępuje tę wartość.

Należy pamiętać, że zachowanie ochrony w czasie wykonywania jest kombinacją wartości na poziomie ochrony ustawionych w następujących właściwościach. Te właściwości mają strukturę hierarchiczną. Ustawienie wartości najbardziej zewnętrznej określa ustawienie domyślne dla wszystkich węższych zakresów, chyba że zostanie jawnie ustawiona inna wartość dla węższego zakresu. W takim 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 ProtectionLevel.EncryptAndSign wartość , a ż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ą ProtectionLevel 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 i ich założeń i zakresów, zobacz Understanding Protection Level (Opis 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 kontrakcie nie określono jawnie poziomu ochrony, a powiązanie bazowe obsługuje zabezpieczenia (zarówno na poziomie transportu, jak i komunikatu), skuteczny poziom ochrony dla całego kontraktu to ProtectionLevel.EncryptAndSign. Jeśli powiązanie nie obsługuje zabezpieczeń (takich jak BasicHttpBinding), skuteczne System.Net.Security.ProtectionLevel jest ProtectionLevel.None dla całej umowy. Wynikiem jest to, że w zależności od powiązania punktu końcowego klienci mogą wymagać innej ochrony zabezpieczeń na poziomie komunikatu lub transportu nawet wtedy, gdy kontrakt określa ProtectionLevel.None.

Dotyczy