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 être utilisée uniquement pour protéger les ressources contre l’accès accidentel par du code entièrement approuvé. Il ne doit pas être utilisé pour protéger les ressources contre toute utilisation abusive intentionnelle par du code non approuvé. Par exemple, si la méthode émet une PermitOnly autorisation, puis appelle la méthodeB, la méthode B peut remplacer excessivement le PermitOnly par l’émission d’un Assert.A 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 avec elle, car la méthode B est l’appelant immédiat, puis descend la pile pour confirmer qu’il n’y a pas Deny ou PermitOnly moins dans la pile. La méthode B, qui tente d’accéder à la ressource, peut arrêter immédiatement la procédure de pile à l’aide de la Assert méthode. Dans ce cas, le PermitOnly placé sur la pile par méthode A (la méthode appelante) n’est jamais découvert.

PermitOnly est similaire à Denyce que les deux entraînent l’échec des marches de pile lorsqu’elles réussissent autrement. La différence est que Deny spécifie les autorisations qui entraînent l’échec de la procédure de pile, mais PermitOnly spécifie les seules autorisations qui ne provoquent pas l’échec de la procédure de 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 est effectif jusqu’à PermitOnly ce que le code appelant retourne à son appelant. PermitOnly Un seul peut être actif sur un cadre. Une tentative d’appel PermitOnly lorsqu’un actif PermitOnly existe sur le frame entraîne un SecurityException. Appelez ou supprimez RevertPermitOnly un élément actifPermitOnly.RevertAll

PermitOnly est ignoré pour une autorisation non accordée, car une demande pour cette autorisation ne réussira pas. Toutefois, si le code inférieur à la pile d’appels appelle Demand ultérieurement cette autorisation, une SecurityException exception est levée lorsque la procédure de pile atteint le code qui a essayé d’appeler PermitOnly. Cela est dû au fait que le code appelé PermitOnly n’a pas reçu l’autorisation, même s’il a demandé PermitOnly 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 les méthodes d’appel de pile d’appels diminuent dans la pile des appels.

Notes pour les héritiers

Vous ne pouvez pas remplacer cette méthode.

S’applique à