Freigeben über


CodeAccessPermission.Assert-Methode

Deklariert, dass der aufrufende Code selbst dann auf die durch eine Berechtigungsanforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, wenn übergeordnete Aufrufer in der Aufrufliste keine Zugriffsberechtigung für die Ressource besitzen. Die Verwendung von Assert kann zu Sicherheitsproblemen führen.

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

Syntax

'Declaration
Public Sub Assert
'Usage
Dim instance As CodeAccessPermission

instance.Assert
public void Assert ()
public:
virtual void Assert () sealed
public final void Assert ()
public final function Assert ()

Ausnahmen

Ausnahmetyp Bedingung

SecurityException

Der Aufrufcode verfügt nicht über SecurityPermissionFlag.Assertion.

- oder -

Es ist bereits ein aktives Assert für den aktuellen Frame vorhanden.

Hinweise

Eine Aufrufliste wird i. d. R. als absteigend geordnet dargestellt, sodass übergeordnete Methoden in der Aufrufliste untergeordnete Methoden aufrufen. Der Aufruf von Assert verhindert, dass bei einem Stackwalk von einem untergeordneten Bereich der Aufrufliste aus der Bereich des Codes in der Liste überschritten wird, der diese Methode aufruft. Wenn daher übergeordnete Aufrufer in der Aufrufliste nicht über die Zugriffsberechtigung für eine Ressource verfügen, können sie auf diese dennoch über den Code zugreifen, der die Methode für die erforderliche Berechtigung aufruft. Eine Assertion ist nur wirksam, wenn die Sicherheitsüberprüfung der Berechtigung des Codes, in dem Assert für die Berechtigung aufgerufen wird, erfolgreich ist.

Der Aufruf von Assert ist so lange wirksam, bis der aufrufende Code beendet wird und zu dessen Aufrufer zurückkehrt. Für einen Frame kann immer nur ein Assert aktiv sein. Ein Versuch, Assert aufzurufen, wenn ein aktives Assert für den Frame vorhanden ist, führt zu einer SecurityException. Rufen Sie RevertAssert oder RevertAll auf, um ein aktives Assert zu entfernen.

Assert wird bei nicht gewährten Berechtigungen ignoriert, da eine Anforderung für die Berechtigung fehlschlagen würde. Wenn jedoch untergeordneter Code in der Aufrufliste Demand für die Berechtigung aufruft, wird eine SecurityException ausgelöst, sobald beim Stackwalk der Code erreicht wird, in dem der Aufruf von Assert versucht wurde. Die Ausnahme wird ausgelöst, da ein Aufruf von Assert erfolgt, obwohl dem Assert aufrufenden Code die entsprechende Berechtigung nicht gewährt wurde.

Warnung

Da durch den Aufruf von Assert nicht mehr der gesamte Code in der Aufrufliste über eine Berechtigung für den Zugriff auf die angegebene Ressource verfügen muss, können bei falscher oder unsachgemäßer Verwendung Sicherheitsprobleme entstehen. Verwenden Sie diese Aufrufe daher mit größter Vorsicht.

Hinweise für Erben Diese Methode kann nicht überschrieben werden.

.NET Framework-Sicherheit

  • SecurityPermission  für den Aufruf von Assert. Zugeordnete Enumeration: SecurityPermissionFlag.Assertion

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

CodeAccessPermission-Klasse
CodeAccessPermission-Member
System.Security-Namespace

Weitere Ressourcen

Verwenden der Assert-Methode
Außerkraftsetzen von Sicherheitsüberprüfungen