Freigeben über


OperationContractAttribute.ProtectionLevel Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Nachrichten eines Vorgangs verschlüsselt oder signiert werden müssen oder beides beziehungsweise legt ihn fest.

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

Einer der ProtectionLevel-Werte. Der Standardwert ist None.

Ausnahmen

Der Wert ist keiner der ProtectionLevel-Werte.

Hinweise

Verwenden Sie die ProtectionLevel-Eigenschaften, um zu steuern, ob die Nachrichten eines Vorgangs verschlüsselt oder/und signiert sein müssen. Der hier festgelegte Wert ist der Standardwert für alle Nachrichten, die für diesen Vorgang angegeben werden, es sei denn, ein kleinerer Bereich überschreibt diesen Wert.

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 ProtectionLevel 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 Schutzebenen und deren Annahmen und Bereichen finden Sie unter Grundlegendes zur Schutzebene.

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: