FaultContractAttribute.ProtectionLevel Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Sicherheitsebene an, die der SOAP-Fehler von der Bindung fordert.
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.
Hinweise
Geben Sie mit der FaultDescription.ProtectionLevel-Eigenschaft an, wie stark die Bindung beim Senden des SOAP-Fehlers verschlüsseln, signieren oder verschlüsseln und signieren muss. Nach Möglichkeit sollte der Fehler eines Vorgangs ausdrücklich über die Sicherheitsebenenanforderungen im Vertrag entscheiden. Die Standardschutzstufe ist ProtectionLevel.None, d. h., dass die von Ihnen definierte SOAP-Fehlermeldung keine Verschlüsselung oder eine digitale Signatur erfordert (obwohl Ihre Bindung diese Unterstützung bereitstellen kann, wenn dies konfiguriert ist). Wenn eine Fehlermeldung Informationen enthält, die vertraulich sind oder zu Sicherheitsproblemen führen können, wird dringend empfohlen, dass die ProtectionLevel Eigenschaft auf ProtectionLevel.EncryptAndSignfestgelegt wird. Weitere Informationen zu Sicherheitsproblemen finden Sie unter Grundlegendes zum Schutzniveau.
Das Sicherheitsverhalten während der Laufzeit ist die Kombination der Sicherheitsebeneneigenschaften, die über eine hierarchische Struktur verfügen. 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 ServiceContractAttribute.ProtectionLevel sie beispielsweise auf ProtectionLevel.EncryptAndSign und keine anderen schmaleren Bereiche festgelegt sind, sind alle Nachrichten in einem Vorgangsvertrag verschlüsselt und signiert, einschließlich Fehlernachrichten. Wenn jedoch eine dieser Vorgänge auf OperationContractAttribute "festgelegt ProtectionLevel.Sign" festgelegt ist, werden die Nachrichten für diesen Vorgang signiert, aber alle anderen Nachrichten im Vertrag sind verschlüsselt und signiert, einschließlich Fehlermeldungen.
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.