Partager via


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 ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Implémente

Exceptions

Le code appelant n’a pas Assertion.

- ou -

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

Remarques

La pile d’appels est généralement représentée comme augmentant vers le bas, de sorte que les méthodes plus élevées dans la pile d’appels de la pile d’appels sont inférieures dans la pile d’appels. L’appel Assert empêche une marche de pile provenant de la pile d’appels plus bas de continuer vers le haut de la pile d’appels au-delà du code qui appelle cette méthode. Par conséquent, même si les appelants en haut de la pile d’appels ne disposent pas des autorisations requises pour accéder à une ressource, ils peuvent toujours y accéder via le code qui appelle cette méthode sur l’autorisation nécessaire. Une assertion n’est effective que si le code qui appelle Assert passe la case activée de sécurité pour l’autorisation qu’elle affirme.

L’appel à est effectif jusqu’à Assert ce que le code appelant retourne à son appelant. Assert Un seul peut être actif sur un frame. Une tentative d’appel Assert lorsqu’un actif Assert existe sur l’image entraîne un SecurityException. Appelez RevertAssert ou RevertAll pour supprimer un actif Assert.

Assert est ignoré pour une autorisation non accordée, car une demande de cette autorisation n’aboutira pas. Toutefois, si le code inférieur à la pile d’appels appelle Demand cette autorisation, un SecurityException est levée lorsque la procédure de pile atteint le code qui a tenté d’appeler Assert. Cela se produit parce que le code appelé Assert n’a pas obtenu l’autorisation, même s’il a essayé de le faire Assert .

Attention

Étant donné que l’appel Assert supprime l’exigence selon laquelle tout le code de la chaîne d’appels doit être 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 remplacer cette méthode.

S’applique à

Voir aussi