ServiceContractAttribute.ProtectionLevel Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u op of de binding voor het contract de waarde van de ProtectionLevel eigenschap moet ondersteunen.
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
Waarde van eigenschap
Een van de ProtectionLevel waarden. De standaardwaarde is None.
Uitzonderingen
De waarde is geen van de ProtectionLevel waarden.
Opmerkingen
Gebruik de ProtectionLevel eigenschap om de mate op te geven waarin de contractbinding versleuteling, digitale handtekeningen of beide vereist voor eindpunten die het contract beschikbaar maken. De waarde die hier is ingesteld, is de standaardwaarde voor alle bewerkingsberichten, inclusief fouten.
Het is belangrijk te onthouden dat het beveiligingsgedrag tijdens runtime de combinatie is van de waarden op beveiligingsniveau die zijn ingesteld op de volgende eigenschappen. Deze eigenschappen hebben een hiƫrarchische structuur. Als u de buitenste waarde instelt, wordt de standaardinstelling voor alle smallere bereiken ingesteld, tenzij een andere waarde voor een smaller bereik expliciet is ingesteld. In dit geval blijft de buitenste waarde de standaardwaarde voor alle smallere bereiken, met uitzondering van die specifieke set.
Als bijvoorbeeld ServiceContractAttribute.ProtectionLevel is ingesteld op ProtectionLevel.EncryptAndSign en er geen andere smallere bereiken beveiligingsniveauinstellingen hebben, worden alle berichten in een bewerkingscontract versleuteld en ondertekend. Als een van deze bewerkingen echter is OperationContractAttribute ingesteld ProtectionLevel.Signop , worden de berichten voor die bewerking ondertekend, maar alle andere berichten in het contract versleuteld en ondertekend.
Zie Understanding Protection Level voor meer informatie over beveiligingsniveaus en hun veronderstellingen en bereiken.
De bereiken waarvoor deze waarden zijn ingesteld, zijn:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
De MessageContractMemberAttribute.ProtectionLevel eigenschap op System.ServiceModel.MessageHeaderAttribute.
De MessageContractMemberAttribute.ProtectionLevel eigenschap op System.ServiceModel.MessageBodyMemberAttribute.
Wanneer er geen beveiligingsniveau expliciet op het contract is opgegeven en de onderliggende binding beveiliging ondersteunt (ongeacht of het transport- of berichtniveau is), is ProtectionLevel.EncryptAndSignhet effectieve beveiligingsniveau voor het hele contract . Als de binding geen ondersteuning biedt voor beveiliging (zoalsBasicHttpBinding), is ProtectionLevel.None de effectieve System.Net.Security.ProtectionLevel waarde voor het hele contract. Het resultaat is dat clients, afhankelijk van de eindpuntbinding, verschillende beveiliging op bericht- of transportniveau kunnen vereisen, zelfs wanneer het contract aangeeft ProtectionLevel.None.