OperationContractAttribute.ProtectionLevel Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.