FaultContractAttribute.ProtectionLevel Egenskap

Definition

Anger den skyddsnivå som SOAP-felet kräver från bindningen.

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

Egenskapsvärde

Ett av ProtectionLevel värdena. Standardvärdet är None.

Kommentarer

Använd egenskapen FaultDescription.ProtectionLevel för att ange i vilken grad bindningen måste krypteras, signeras eller båda när SOAP-felet skickas. Vi rekommenderar starkt att en åtgärds fel uttryckligen avgör kraven på säkerhetsskyddsnivå i kontraktet. Standardskyddsnivån är ProtectionLevel.None, vilket innebär att SOAP-felmeddelandet som du definierar inte kräver kryptering eller en digital signatur (även om bindningen kan ge detta stöd om den är konfigurerad för att göra det). Om ett felmeddelande innehåller information som är känslig eller kan leda till säkerhetsproblem rekommenderar vi starkt att ProtectionLevel egenskapen anges till ProtectionLevel.EncryptAndSign. Mer information om säkerhetsproblem finns i Förstå skyddsnivå.

Skyddsbeteendet vid körning är kombinationen av de skyddsnivåegenskaper som har en hierarkisk struktur. Om du anger det yttersta värdet upprättas standardinställningen för alla smalare omfång såvida inte ett annat värde för ett smalare omfång uttryckligen anges. I det här fallet förblir det yttre värdet standardvärdet för alla smalare omfång med undantag för den specifika uppsättningen.

Om ServiceContractAttribute.ProtectionLevel till exempel är inställt på ProtectionLevel.EncryptAndSign och inga andra smalare omfång har inställningar för skyddsnivå krypteras och signeras alla meddelanden i ett åtgärdskontrakt, inklusive felmeddelanden. Men om en av dessa åtgärder har OperationContractAttribute angetts till ProtectionLevel.Sign, signeras meddelandena för den åtgärden, men alla andra meddelanden i kontraktet krypteras och signeras, inklusive felmeddelanden.

De omfång där dessa värden anges är:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

Egenskapen MessageContractMemberAttribute.ProtectionLevelSystem.ServiceModel.MessageHeaderAttribute.

Egenskapen MessageContractMemberAttribute.ProtectionLevelSystem.ServiceModel.MessageBodyMemberAttribute.

När det inte finns någon uttryckligen angiven skyddsnivå i kontraktet och den underliggande bindningen stöder säkerhet (oavsett om det är på transport- eller meddelandenivå) är ProtectionLevel.EncryptAndSignden effektiva skyddsnivån för hela kontraktet . Om bindningen inte stöder säkerhet (till exempel BasicHttpBinding) System.Net.Security.ProtectionLevel gäller ProtectionLevel.None hela kontraktet. Resultatet är att beroende på slutpunktsbindningen kan klienter kräva olika säkerhetsskydd på meddelande- eller transportnivå även när kontraktet anger ProtectionLevel.None.

Gäller för