DynamicMethod.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 die aktuelle dynamische Methode auf der aktuellen Vertrauensebene sicherheitstransparent ist und daher keine wichtigen 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
true
, wenn die dynamische Methode auf der aktuellen Vertrauensebene sicherheitstransparent ist, andernfalls false
.
Ausnahmen
Die dynamische Methode weist keinen Methodentext auf.
Hinweise
Die IsSecurityCriticalEigenschaften , IsSecuritySafeCriticalund IsSecurityTransparent geben die Transparenzebene der dynamischen Methode gemäß der Common Language Runtime (CLR) an. Die Kombinationen dieser Eigenschaften sind in der folgenden Tabelle dargestellt:
Sicherheitsstufe | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
Kritisch | true |
false |
false |
Sicher kritisch | true |
true |
false |
Transparent | false |
false |
true |
Ein Verwenden dieser Eigenschaften ist deutlich einfacher als das Untersuchen der Sicherheitsanmerkungen einer Assembly und der zugehörigen Typen, das Überprüfen der aktuellen Vertrauensebene und das Versuchen, die Laufzeitregeln zu duplizieren.
Die Transparenz einer dynamischen Methode hängt vom Modul ab, dem sie zugeordnet ist. Wenn die dynamische Methode einem Typ und nicht einem Modul zugeordnet ist, hängt ihre Transparenz von dem Modul ab, das den Typ enthält. Dynamische Methoden verfügen nicht über Sicherheitsanmerkungen, sodass ihnen die Standardtransparenz für das zugeordnete Modul zugewiesen wird.
Anonym gehostete dynamische Methoden sind immer transparent, da das vom System bereitgestellte Modul, das sie enthält, transparent ist.
Die Transparenz einer dynamischen Methode, die einer vertrauenswürdigen Assembly zugeordnet ist (d. h. einer Assembly mit starkem Namen, die im globalen Assemblycache installiert ist) wird in der folgenden Tabelle beschrieben.
Assemblyanmerkung Transparenz der Ebene 1 Transparenz der Ebene 2 Vollständig transparent Transparent Transparent Vollständig kritisch Kritisch Kritisch Gemischte Transparenz Transparent Transparent Sicherheitsunabhängig Sicherheitskritisch Kritisch Wenn Sie z. B. eine dynamische Methode einem Typ in mscorlib.dll zuordnen, der eine gemischte Transparenz der Ebene 2 aufweist, ist die dynamische Methode transparent und kann keinen kritischen Code ausführen. Informationen zu Transparenzstufen finden Sie unter Sicherheitstransparenten Code, Ebene 1 und Sicherheitstransparenter Code, Ebene 2.
Hinweis
Das Zuordnen einer dynamischen Methode zu einem Modul in einer vertrauenswürdigen Assembly der Ebene 1, die sicherheitsunabhängig ist, z. B. System.dll, lässt keine Erhöhung der Vertrauensstellung zu. Wenn der Gewährungssatz des Codes, der die dynamische Methode aufruft, nicht den Gewährungssatz System.dll (d. h. vollständige Vertrauenswürdigkeit) SecurityException enthält, wird ausgelöst, wenn die dynamische Methode aufgerufen wird.
Die Transparenz einer dynamischen Methode, die einer teilweise vertrauenswürdigen Assembly zugeordnet ist, hängt davon ab, wie die Assembly geladen wird. Wenn die Assembly teilweise vertrauenswürdig geladen wird (z. B. in eine Sandkastenanwendungsdomäne), ignoriert die Laufzeit die Sicherheitsanmerkungen der Assembly. Die Assembly und alle ihre Typen und Member, einschließlich dynamischer Methoden, werden als transparent behandelt. Die Laufzeit achtet nur auf Sicherheitsanmerkungen, wenn die teilweise vertrauenswürdige Assembly mit voller Vertrauenswürdigkeit geladen wird (z. B. in die Standardanwendungsdomäne einer Desktopanwendung). In diesem Fall weist die Runtime der dynamischen Methode die Standardtransparenz für Methoden gemäß den Anmerkungen der Assembly zu.
Weitere Informationen zu Reflektionsemissionen und Transparenz finden Sie unter Sicherheitsprobleme in Reflektionsausgabe. Informationen zur Transparenz finden Sie unter Sicherheitsänderungen.