ServiceContractAttribute.ProtectionLevel Egenskap

Definition

Anger om bindningen för kontraktet måste ha stöd för egenskapens ProtectionLevel värde.

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.

Undantag

Värdet är inte ett av ProtectionLevel värdena.

Kommentarer

Använd egenskapen ProtectionLevel för att ange i vilken utsträckning kontraktsbindningen kräver kryptering, digitala signaturer eller båda för slutpunkter som exponerar kontraktet. Värdet som anges här är standardvärdet för alla åtgärdsmeddelanden, inklusive fel.

Det är viktigt att komma ihåg att skyddsbeteendet vid körning är kombinationen av de skyddsnivåvärden som anges för följande egenskaper. Dessa egenskaper 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. Men om en av dessa åtgärder har OperationContractAttribute värdet ProtectionLevel.Sign, signeras meddelandena för den åtgärden, men alla andra meddelanden i kontraktet krypteras och signeras.

Mer information om skyddsnivåer och deras antaganden och omfattningar finns i Förstå skyddsnivå.

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