CodeAccessPermission.PermitOnly Methode

Definitie

Hiermee voorkomt u dat bellers in de aanroepstack de code gebruiken die deze methode aanroept om toegang te krijgen tot alle resources, met uitzondering van de resource die is opgegeven door het huidige exemplaar.

public:
 virtual void PermitOnly();
public void PermitOnly();
abstract member PermitOnly : unit -> unit
override this.PermitOnly : unit -> unit
Public Sub PermitOnly ()

Implementeringen

Uitzonderingen

Er is al een actieve PermitOnly() versie voor het huidige frame.

Opmerkingen

Important

De PermitOnly methode mag alleen worden gebruikt om resources te beschermen tegen onbedoelde toegang door volledig vertrouwde code. Het mag niet worden gebruikt om resources te beschermen tegen opzettelijk misbruik door niet-vertrouwde code. Als de methode A bijvoorbeeld een PermitOnly machtiging uitgeeft en vervolgens een methode Baanroept, kan de methode de methode B overschrijven door een PermitOnlyAssert. De aangeroepen methode is altijd hoger in de stack. Als de methode B toegang probeert te krijgen tot een beveiligde resource, begint het beveiligingssysteem met het controleren op machtigingen, omdat de methode B de directe aanroeper is en vervolgens de stack omlaag gaat om te bevestigen dat er geen Deny of PermitOnly minder in de stack is. Methode B, die toegang probeert te krijgen tot de resource, kan de stack-wandeling onmiddellijk stoppen met behulp van de Assert methode. In dat geval wordt de PermitOnly op de stack geplaatst op methode A (de aanroepmethode) nooit gedetecteerd.

PermitOnly is vergelijkbaar met Deny, omdat beide oorzaak dat stack loopt mislukken wanneer ze anders zouden slagen. Het verschil is dat Deny machtigingen worden opgegeven die ervoor zorgen dat de stack-wandeling mislukt, maar PermitOnly geeft de enige machtigingen op die ervoor zorgen dat de stack-wandeling niet mislukt.

Roep deze methode aan om ervoor te zorgen dat uw code kan worden gebruikt om alleen toegang te krijgen tot de opgegeven resources. De aanroep is PermitOnly van kracht totdat de aanroepcode terugkeert naar de aanroeper. Slechts één PermitOnly kan actief zijn op een frame. Een poging om aan te roepen PermitOnly wanneer er een actief PermitOnly in het frame bestaat, resulteert in een SecurityException. Een actieve PermitOnlyaanroep RevertPermitOnly of RevertAll verwijderen.

PermitOnly wordt genegeerd voor een machtiging die niet is verleend, omdat een aanvraag voor die machtiging niet slaagt. Als code echter lager op de aanroepstack later wordt aangeroepen Demand voor die machtiging, wordt er een SecurityException gegenereerd wanneer de stack-wandeling de code bereikt die is geprobeerd aan te roepen PermitOnly. Dit komt doordat de code die wordt aangeroepen, niet de machtiging heeft gekregen PermitOnly , ook al werd deze machtiging aangeroepen PermitOnly . De aanroepstack wordt doorgaans weergegeven als uitgroeien, zodat methoden die hoger zijn in de aanroepstack, lager zijn in de aanroepstack.

Notities voor overnemers

U kunt deze methode niet overschrijven.

Van toepassing op