ServiceContractAttribute.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, zda vazba pro kontrakt musí podporovat hodnotu ProtectionLevel vlastnosti.
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.
Výjimky
Hodnota není jednou z ProtectionLevel hodnot.
Poznámky
ProtectionLevel Vlastnost použijte k určení stupně, do kterého vazba kontraktu vyžaduje šifrování, digitální podpisy nebo obojí pro koncové body, které zpřístupňují kontrakt. Zde nastavená hodnota je výchozí hodnota pro všechny zprávy operací, včetně chyb.
Je důležité si uvědomit, že chování ochrany za běhu je kombinací hodnot na úrovni ochrany nastavených na následujících vlastnostech. Tyto vlastnosti mají hierarchickou strukturu. Nastavení vnější hodnoty stanoví výchozí nastavení pro všechny užší obory, pokud není explicitně nastavena jiná hodnota pro užší obor. V tomto případě zůstává vnější hodnota výchozím nastavením pro všechny užší obory s výjimkou této sady.
Pokud ServiceContractAttribute.ProtectionLevel je například nastavená hodnota ProtectionLevel.EncryptAndSign a žádné další užší obory nemají nastavení úrovně ochrany, všechny zprávy v kontraktu operace jsou šifrované a podepsané. Pokud je však jedna z těchto operací nastavena OperationContractAttribute na ProtectionLevel.Sign, jsou zprávy pro danou operaci podepsány, ale všechny ostatní zprávy v kontraktu jsou zašifrovány a podepsány.
Podrobnosti o úrovních ochrany a jejich předpokladech a oborech najdete v tématu Principy úrovně ochrany.
Obory, ve kterých jsou tyto hodnoty nastavené:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
Vlastnost MessageContractMemberAttribute.ProtectionLevel na System.ServiceModel.MessageHeaderAttribute.
Vlastnost MessageContractMemberAttribute.ProtectionLevel na System.ServiceModel.MessageBodyMemberAttribute.
Pokud není u smlouvy explicitně zadána žádná úroveň ochrany a podkladová vazba podporuje zabezpečení (ať už na úrovni přenosu nebo zprávy), je platná úroveň ochrany pro celou smlouvu ProtectionLevel.EncryptAndSign. Pokud vazba nepodporuje zabezpečení (například BasicHttpBinding), platí System.Net.Security.ProtectionLevel ProtectionLevel.None pro celou smlouvu. Výsledkem je to, že klienti můžou v závislosti na vazbě koncového bodu vyžadovat jinou ochranu zabezpečení na úrovni zprávy nebo přenosu i v případě, že kontrakt určuje ProtectionLevel.None.