CodeAccessPermission.PermitOnly Méthode

Définition

Empêche les appelants plus hauts dans la pile des appels d’utiliser le code qui appelle cette méthode pour accéder à toutes les ressources à l’exception de la ressource spécifiée par l’instance actuelle.

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

Implémente

Attributs

Exceptions

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

Remarques

Important

La PermitOnly méthode doit uniquement être utilisée pour protéger les ressources de l’accès accidentel par du code d’un niveau de confiance suffisant. Elle ne doit pas être utilisée pour protéger les ressources contre une mauvaise utilisation intentionnelle par du code non fiable. Par exemple, si A la méthode émet un PermitOnly pour une autorisation, puis appelle B la méthode, B la méthode peut substituer de façon manifeste le PermitOnly en émettant un Assert . La méthode appelée est toujours plus élevée dans la pile. Par conséquent, si la méthode B tente d’accéder à une ressource protégée, le système de sécurité commence à vérifier les autorisations associées, car la méthode B est l’appelant immédiat, puis parcourt la pile pour confirmer qu’il n’y a pas ou une valeur Deny PermitOnly inférieure dans la pile. La méthode B , qui tente d’accéder à la ressource, peut arrêter immédiatement le parcours de la pile à l’aide de la Assert méthode. Dans ce cas, le PermitOnly placé sur la pile par méthode A (méthode d’appel) n’est jamais découvert.

PermitOnly est semblable à Deny , dans le sens où les deux provoquent l’échec du parcours de la pile lorsqu’ils réussissent normalement. La différence est que Deny spécifie les autorisations qui provoquent l’échec du parcours de la pile, mais PermitOnly spécifie les seules autorisations qui n’entraînent pas l’échec du parcours de la pile.

Appelez cette méthode pour vous assurer que votre code peut être utilisé pour accéder uniquement aux ressources spécifiées. L’appel à PermitOnly est effectif jusqu’à ce que le code appelant retourne à son appelant. Une seule PermitOnly peut être active sur un frame. Une tentative d’appel à PermitOnly quand un actif PermitOnly existe sur le frame génère une SecurityException . Appelez RevertPermitOnly ou RevertAll pour supprimer un actif PermitOnly .

PermitOnly 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 ultérieurement Demand pour cette autorisation, une SecurityException est levée lorsque le parcours de la pile atteint le code qui a essayé d’appeler PermitOnly . Cela est dû au fait que le code qui a appelé n' PermitOnly a pas reçu l’autorisation, bien qu’il ait appelé PermitOnly pour cette autorisation. 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.

Notes pour les héritiers

Vous ne pouvez pas substituer cette méthode.

S’applique à