ServiceContractAttribute.ProtectionLevel Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.ProtectionLevel på System.ServiceModel.MessageHeaderAttribute.
Egenskapen MessageContractMemberAttribute.ProtectionLevel på System.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.