TypeBuilder.IsSecuritySafeCritical 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í.
Získá hodnotu, která označuje, zda aktuální typ je zabezpečení-bezpečné-kritické; to znamená, jestli může provádět kritické operace a může k němu přistupovat transparentní kód.
public:
virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean
Hodnota vlastnosti
true pokud je aktuální typ kritickým zabezpečením; false pokud je kritický nebo transparentní.
Výjimky
Aktuální dynamický typ nebyl vytvořen voláním CreateType() metody.
Poznámky
Funkce IsSecurityCriticala IsSecuritySafeCriticalIsSecurityTransparent vlastnosti hlásí úroveň průhlednosti typu podle modulu CLR (Common Language Runtime). Kombinace těchto vlastností jsou uvedeny v následující tabulce:
| Úroveň zabezpečení | Je kritické pro bezpečnost | IsSecuritySafeCritical | IsSecurityTransparent |
|---|---|---|---|
| Kritická | true |
false |
false |
| Bezpečnostně kritické | true |
true |
false |
| Transparent | false |
false |
true |
Použití těchto vlastností je mnohem jednodušší než zkoumání poznámek zabezpečení sestavení a jeho typů, kontrole aktuální úrovně důvěryhodnosti a pokusu o duplikování pravidel modulu runtime.
Modul runtime začne vyhodnocovat úrovně průhlednosti v sestavení. Pokud je například dynamické sestavení kritické pro zabezpečení, budou ignorovány poznámky k typům a všechny typy jsou kritické pro zabezpečení.
Dynamické sestavení ve výchozím nastavení dědí průhlednost sestavení, které ho generuje. Toto výchozí nastavení můžete přepsat pomocí AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)přetížení , AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)nebo AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) metody a určení atributů zabezpečení. Tímto způsobem nelze zvýšit úrovně zabezpečení; to znamená, že transparentní kód nemůže generovat kód kritický pro zabezpečení nebo bezpečný pro zabezpečení. Atributy musí být zadány při vytvoření dynamického sestavení nebo se neprojeví, dokud se sestavení neuloží na disk a znovu načte.
Note
Výchozí dědičnost je omezená na vyhodnocení transparentnosti modulu runtime. Na dynamické sestavení nejsou použity žádné atributy. Pokud chcete přidat atributy zabezpečení, musíte je použít sami.
Další informace o generování a transparentnosti reflexe naleznete v tématu Problémy se zabezpečením při generování reflexe. Informace o transparentnosti naleznete v tématu Změny zabezpečení.