FaultContractAttribute.ProtectionLevel Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje úroveň ochrany, která chyba SOAP vyžaduje od vazby.
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
Hodnota vlastnosti
Jedna z ProtectionLevel hodnot. Výchozí formát je None.
Poznámky
FaultDescription.ProtectionLevel Pomocí vlastnosti určete, do jaké míry musí vazba šifrovat, podepsat nebo obojí při odesílání chyby SOAP. Důrazně doporučujeme, aby chyba operace explicitně rozhodoval o požadavcích na úroveň ochrany zabezpečení v kontraktu. Výchozí úroveň ochrany je ProtectionLevel.None, což znamená, že vámi definovaná chybová zpráva SOAP nevyžaduje šifrování ani digitální podpis (i když vaše vazba může tuto podporu poskytovat, pokud je k tomu nakonfigurovaná). Pokud chybová zpráva obsahuje informace, které jsou citlivé nebo můžou vést k problémům se zabezpečením ProtectionLevel , důrazně doporučujeme nastavit vlastnost na ProtectionLevel.EncryptAndSignhodnotu . Další informace o problémech se zabezpečením najdete v tématu Principy úrovně ochrany.
Chování ochrany za běhu je kombinací vlastností na úrovni ochrany, které mají hierarchickou strukturu. Nastavení vnější hodnoty vytvoří výchozí nastavení pro všechny užší obory, pokud není explicitně nastavena jiná hodnota pro užší obor. V tomto případě vnější hodnota zůstává výchozí pro všechny užší obory s výjimkou toho, který je speciálně nastavený.
Pokud ServiceContractAttribute.ProtectionLevel je například nastavená hodnota a ProtectionLevel.EncryptAndSign žádné jiné užší obory nemají nastavení úrovně ochrany, jsou všechny zprávy v kontraktu operace šifrované a podepsané, včetně chybových zpráv. Pokud je ale jedna z těchto operací nastavená OperationContractAttribute na ProtectionLevel.Sign, zprávy pro danou operaci se podepisují, ale všechny ostatní zprávy v kontraktu jsou zašifrované a podepsané, včetně zpráv o chybách.
Rozsahy, ve kterých jsou tyto hodnoty nastaveny, jsou:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
Vlastnost pro MessageContractMemberAttribute.ProtectionLevelSystem.ServiceModel.MessageHeaderAttribute.
Vlastnost pro MessageContractMemberAttribute.ProtectionLevelSystem.ServiceModel.MessageBodyMemberAttribute.
Pokud ve smlouvě není explicitně uvedená žádná úroveň ochrany a podkladová vazba podporuje zabezpečení (ať už na úrovni přenosu nebo zprávy), efektivní úroveň ochrany pro celý kontrakt je ProtectionLevel.EncryptAndSign. Pokud vazba nepodporuje zabezpečení (například BasicHttpBinding), platí System.Net.Security.ProtectionLevelProtectionLevel.None pro celou smlouvu. Výsledkem je, že v závislosti na vazbě koncového bodu můžou klienti vyžadovat jinou ochranu zabezpečení na úrovni přenosu nebo zpráv, i když kontrakt určuje ProtectionLevel.None.