Sdílet prostřednictvím


TypeBuilder.IsSecurityCritical Vlastnost

Definice

Získá hodnotu, která označuje, zda aktuální typ je zabezpečení-kritický nebo zabezpečení-kritický, a proto může provádět kritické operace.

public:
 virtual property bool IsSecurityCritical { bool get(); };
public override bool IsSecurityCritical { get; }
member this.IsSecurityCritical : bool
Public Overrides ReadOnly Property IsSecurityCritical As Boolean

Hodnota vlastnosti

true pokud je aktuální typ kritický pro zabezpečení nebo bezpečnostně kritický; false pokud je transparentní.

Výjimky

Aktuální dynamický typ nebyl vytvořen voláním CreateType() metody.

Poznámky

Vlastnosti IsSecurityCritical, IsSecuritySafeCriticala IsSecurityTransparent hlásí úroveň průhlednosti typu určenou modulem CLR (Common Language Runtime). Kombinace těchto vlastností jsou uvedeny v následující tabulce:

Úroveň zabezpečení IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
Kritické true false false
Bezpečné-kritické true true false
Průhlednost false false true

Použití těchto vlastností je mnohem jednodušší než zkoumání poznámek zabezpečení sestavení a jeho typů, kontrola aktuální úrovně důvěryhodnosti a pokus o duplikování pravidel modulu runtime.

Modul runtime začne vyhodnocovat úrovně průhlednosti v sestavení. Pokud je například dynamické sestavení důležité z hlediska zabezpečení, poznámky k typům se ignorují a všechny typy jsou důležité pro zabezpečení.

Ve výchozím nastavení dynamické sestavení 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í metody , AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)nebo AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) a zadáním atributů zabezpečení. Tímto způsobem nemůžete zvýšit úrovně zabezpečení. to znamená, že transparentní kód nemůže generovat kód důležitý pro zabezpečení nebo kód kritický pro zabezpečení. Atributy musí být zadány při vytvoření dynamického sestavení, jinak se neprojeví, dokud nebude sestavení uloženo na disk a znovu načteno.

Poznámka

Výchozí dědičnost je omezená na vyhodnocení průhlednosti 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 průhlednosti reflexe najdete v tématu Problémy se zabezpečením při generování reflexe. Informace o transparentnosti najdete v tématu Změny zabezpečení.

Platí pro

Viz také