TypeBuilder.IsSecurityTransparent Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob der aktuelle Typ transparent ist und daher keine kritischen Vorgänge ausführen kann.
public:
virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean
Eigenschaftswert
truewenn der Typ sicherheitstransparent ist; andernfalls . false
Ausnahmen
Der aktuelle dynamische Typ wurde nicht durch Aufrufen der CreateType() Methode erstellt.
Hinweise
Die IsSecurityCritical, IsSecuritySafeCriticalund IsSecurityTransparent Eigenschaften melden die Transparenzstufe des Typs, wie durch die Common Language Runtime (CLR) bestimmt. Die Kombinationen dieser Eigenschaften sind in der folgenden Tabelle dargestellt:
| Sicherheitsstufe | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
|---|---|---|---|
| Kritisch | true |
false |
false |
| Sicherheitskritisch | true |
true |
false |
| Transparent | false |
false |
true |
Die Verwendung dieser Eigenschaften ist wesentlich einfacher als das Untersuchen der Sicherheitsanmerkungen einer Assembly und der zugehörigen Typen, das Überprüfen der aktuellen Vertrauensstufe und der Versuch, die Regeln der Laufzeit zu duplizieren.
Die Laufzeit beginnt mit der Auswertung von Transparenzstufen in der Assembly. Wenn die dynamische Assembly beispielsweise sicherheitskritisch ist, werden Anmerkungen zu Typen ignoriert, und alle Typen sind sicherheitskritisch.
Standardmäßig erbt eine dynamische Assembly die Transparenz der Assembly, die sie ausgibt. Sie können diese Standardeinstellung überschreiben, indem Sie die AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)Überladung AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)oder Methodenüberladung verwenden AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) und Sicherheitsattribute angeben. Sie können die Sicherheitsstufen nicht erhöhen, indem Sie dies tun; d. h. transparenter Code kann keinen sicherheitskritischen oder sicherheitsrelevanten Code ausgeben. Attribute müssen angegeben werden, wenn die dynamische Assembly erstellt wird, oder sie werden erst wirksam, wenn die Assembly auf dem Datenträger gespeichert und neu geladen wurde.
Note
Die Standardvererbung ist auf die Auswertung der Transparenz der Laufzeit beschränkt. Auf die dynamische Assembly werden keine Attribute angewendet. Wenn Sie Sicherheitsattribute hinzufügen möchten, müssen Sie sie selbst anwenden.
Weitere Informationen zu Reflexionsemissionen und Transparenz finden Sie unter Sicherheitsprobleme in Reflection Emit. Informationen zur Transparenz finden Sie unter "Sicherheitsänderungen".