(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

SuppressUnmanagedCodeSecurityAttribute-Klasse

Ermöglicht es verwaltetem Code, Aufrufe in nicht verwaltetem Code ohne Stackwalk durchzuführen. Die Klasse erlaubt keine Vererbung.

System.Object
  System.Attribute
    System.Security.SuppressUnmanagedCodeSecurityAttribute

Namespace:  System.Security
Assembly:  mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Interface|AttributeTargets.Delegate, AllowMultiple = true, 
	Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class SuppressUnmanagedCodeSecurityAttribute : Attribute

Der SuppressUnmanagedCodeSecurityAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeSuppressUnmanagedCodeSecurityAttributeInitialisiert eine neue Instanz der SuppressUnmanagedCodeSecurityAttribute-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

WarnhinweisVorsicht

Verwenden Sie dieses Attribut mit größter Vorsicht. Falsche Verwendung kann zu Sicherheitseinbußen führen.

Dieses Attribut kann auf Methoden angewendet werden, die systemeigenenen Code aufrufen sollen, ohne dadurch den Leistungsverlust einer Laufzeit-Sicherheitsüberprüfung zu verursachen. Der beim Aufruf von nicht verwaltetem Code durchgeführte Stackwalk wird zur Laufzeit nicht ausgeführt, und dies führt zu einer erheblichen Leistungssteigerung. Bei Verwendung dieses Attributs in einer Klasse wird dieses auf alle darin enthaltenen Methoden angewendet.

Wenn verwalteter Code nicht verwalteten Code aufruft (durch PInvoke oder COM-Interop in systemeigenem Code), wird i. d. R. eine UnmanagedCode-Berechtigung angefordert, damit sichergestellt ist, dass alle Aufrufer über die erforderliche Berechtigung für diesen Vorgang verfügen. Entwickler können durch Anwendung dieses expliziten Attributs die Anforderung zur Laufzeit unterdrücken. Der Entwickler muss sicherstellen, dass der Übergang in nicht verwalteten Code durch andere Mittel ausreichend gesichert ist. Die UnmanagedCode-Berechtigung wird zur Verknüpfungszeit jedoch weiterhin angefordert. Wenn z. B. Funktion A Funktion B aufruft und Funktion B durch SuppressUnmanagedCodeSecurityAttribute gekennzeichnet ist, wird Funktion A während der Just-In-Time-Kompilierung auf eine Berechtigung für nicht verwalteten Code überprüft, allerdings nicht anschließend zur Laufzeit.

Dieses Attribut ist nur wirksam, wenn es auf PInvoke-Methoden bzw. auf Klassen mit PInvoke-Methoden oder auf die Definition einer Schnittstelle angewendet wird, über die Interop-Aufrufe erfolgen. Es wird in jedem anderen Kontext ignoriert.

Dieses Attribut ist für die Implementierung einer Klasse nützlich, die über nicht verwalteten Code den Zugriff auf Systemressourcen bereitstellt. Code ohne Berechtigung für den Zugriff auf nicht verwalteten Code kann eine Klasse mit diesem Attribut aufrufen, um auf nicht verwalteten Code zuzugreifen. Das ist nur dann sicher, wenn der Autor der Klasse mit diesem Attribut die Klasse so programmiert hat, dass sie sicher ist. Andernfalls ist dieses Attribut gefährlich, und der dieses Attribut verwendende Code kann dadurch missbraucht werden.

Dies ist kein deklaratives Sicherheitsattribut, sondern ein reguläres Attribut (es wird von Attribute und nicht von SecurityAttribute abgeleitet).

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft