FaultContractAttribute.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 het beveiligingsniveau op dat de SOAP-fout vereist van de binding.
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.
Opmerkingen
Gebruik de FaultDescription.ProtectionLevel eigenschap om op te geven in welke mate de binding moet versleutelen, ondertekenen of beide bij het verzenden van de SOAP-fout. Het wordt sterk aangeraden dat de fout van een bewerking expliciet de vereisten voor beveiligingsbeveiligingsniveau voor het contract bepaalt. Het standaardbeveiligingsniveau is ProtectionLevel.None, wat betekent dat het SOAP-foutbericht dat u definieert geen versleuteling of een digitale handtekening vereist (hoewel uw binding deze ondersteuning kan bieden als dit is geconfigureerd). Als een foutbericht informatie bevat die gevoelig is of kan leiden tot beveiligingsproblemen, wordt het sterk aanbevolen om de ProtectionLevel eigenschap in te stellen op ProtectionLevel.EncryptAndSign. Zie Inzicht in beveiligingsniveau voor meer informatie over beveiligingsproblemen.
Het beveiligingsgedrag tijdens runtime is de combinatie van de eigenschappen op beveiligingsniveau die een hiƫrarchische structuur hebben. 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, inclusief foutberichten. 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, inclusief foutberichten.
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.