CodeAccessPermission.Assert Méthode

Définition

Déclare que le code appelant peut accéder à la ressource protégée par une demande d’autorisation via le code qui appelle cette méthode, même si les appelants situés plus haut dans la pile n’ont pas reçu l’autorisation d’accéder à la ressource. L’utilisation de Assert() peut créer des problèmes de sécurité.

public:
 virtual void Assert();
public:
 void Assert();
public void Assert ();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
[<System.Diagnostics.Conditional("FEATURE_MONO_CAS")>]
member this.Assert : unit -> unit
Public Sub Assert ()

Implémente

Attributs

Exceptions

Le code appelant n’a pas Assertion.

  • ou - Il existe déjà un Assert() actif pour l’image actuelle.

Remarques

La pile des appels est généralement représentée comme étant en baisse, de sorte que les méthodes plus élevées dans la pile des appels appellent les méthodes inférieures dans la pile des appels. L’appel Assert à empêche un parcours de la pile d’un niveau inférieur dans la pile des appels de poursuivre la pile des appels au-delà du code qui appelle cette méthode. Par conséquent, même si les appelants qui sont plus hauts dans la pile des appels ne disposent pas des autorisations requises pour accéder à une ressource, ils peuvent toujours y accéder par le biais du code qui appelle cette méthode sur l’autorisation nécessaire. Une assertion est effective uniquement si le code qui appelle Assert passe le contrôle de sécurité pour l’autorisation qu’elle déclare.

L’appel à Assert est effectif jusqu’à ce que le code appelant retourne à son appelant. Une seule Assert peut être active sur un frame. Une tentative d’appel à Assert quand un actif Assert existe sur le frame génère une SecurityException . Appelez RevertAssert ou RevertAll pour supprimer un actif Assert .

Assert est ignoré pour une autorisation non accordée, car une demande pour cette autorisation échoue. Toutefois, si le code inférieur sur la pile des appels appelle Demand pour cette autorisation, une SecurityException exception est levée lorsque le parcours de la pile atteint le code qui a essayé d’appeler Assert . Cela est dû au fait que le code qui a appelé n' Assert a pas reçu l’autorisation, même s’il a essayé de le faire Assert .

Attention

Étant donné que l’appel de Assert supprime la nécessité pour que tout le code dans la chaîne d’appel soit autorisé à accéder à la ressource spécifiée, il peut ouvrir des problèmes de sécurité s’il est utilisé de manière incorrecte ou inappropriée. Par conséquent, il doit être utilisé avec une grande prudence.

Notes pour les héritiers

Vous ne pouvez pas substituer cette méthode.

S’applique à

Voir aussi