Freigeben über


ServiceContractAttribute.ProtectionLevel Eigenschaft

Definition

Gibt an, ob die Bindung für den Vertrag den Wert der ProtectionLevel-Eigenschaft unterstützen muss.

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

Eigenschaftswert

ProtectionLevel

Einer der ProtectionLevel-Werte. Der Standardwert ist None.

Ausnahmen

Der Wert ist keiner der ProtectionLevel-Werte.

Hinweise

Verwenden Sie die ProtectionLevel Eigenschaft, um den Grad anzugeben, in dem die Vertragsbindung Verschlüsselung, digitale Signaturen oder beide Endpunkte erfordert, die den Vertrag verfügbar machen. Der hier festgelegte Wert ist der Standardwert für alle Vorgangsmeldungen einschließlich der Fehler.

Dabei ist wichtig zu bedenken, dass das Schutzverhalten zur Laufzeit die Kombination der Schutzebenenwerte der folgenden Eigenschaften ist. Diese Eigenschaften verfügen über eine hierarchische Struktur. Mit der Festlegung des äußersten Werts wird die Standardeinstellung für alle engeren Bereiche festgelegt, es sei denn, es wird ausdrücklich ein anderer Wert für einen engeren Bereich definiert. In diesem Fall bleibt der äußere Wert der Standardwert für alle engeren Bereiche mit Ausnahme des ausdrücklich festgelegten Werts.

Wenn beispielsweise ServiceContractAttribute.ProtectionLevel auf ProtectionLevel.EncryptAndSign festgelegt ist und für keine weiteren engeren Bereiche Schutzebeneneinstellungen definiert sind, werden alle Nachrichten in einem Vorgangsvertrag verschlüsselt und signiert. Wenn aber für einen dieser Vorgänge OperationContractAttribute auf ProtectionLevel.Sign festgelegt ist, werden die Nachrichten für diesen Vorgang signiert, alle anderen Nachrichten im Vertrag werden jedoch verschlüsselt und signiert.

Ausführliche Informationen zu Schutzstufen und deren Annahmen und Bereichen finden Sie unter "Grundlegendes zum Schutzniveau".

Die Bereiche, für die diese Werte festgelegt wurden:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

Die MessageContractMemberAttribute.ProtectionLevel-Eigenschaft für System.ServiceModel.MessageHeaderAttribute.

Die MessageContractMemberAttribute.ProtectionLevel-Eigenschaft für System.ServiceModel.MessageBodyMemberAttribute.

Wenn im Vertrag nicht ausdrücklich eine Schutzebene festgelegt ist und die zugrunde liegende Bindung Sicherheitsfunktionen (auf der Transport- oder Nachrichtenebene) unterstützt, ist die effektive Schutzebene für den gesamten Vertrag ProtectionLevel.EncryptAndSign. Wenn die Bindung keine Sicherheitsfunktionen (wie beispielsweise BasicHttpBinding) unterstützt, ist die effektive System.Net.Security.ProtectionLevel für den gesamten Vertrag ProtectionLevel.None. Im Ergebnis können Clients abhängig von der Endpunktbindung unterschiedlichen Nachrichten- oder Transportebenenschutz auch dann anfordern, wenn im Vertrag ProtectionLevel.None angegeben ist.

Gilt für