CodeAccessPermission.PermitOnly CodeAccessPermission.PermitOnly CodeAccessPermission.PermitOnly CodeAccessPermission.PermitOnly Method

Definition

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf alle außer der von der aktuellen Instanz angegebenen Ressource über den Code zugreifen, der diese Methode aufruft.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

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

Implementiert

Ausnahmen

Es ist bereits eine aktive PermitOnly() für den aktuellen Frame vorhanden.There is already an active PermitOnly() for the current frame.

Hinweise

Wichtig

Die PermitOnly Methode sollte nur zum Schutz von Ressourcen über die versehentliche Preisgabe von voll vertrauenswürdigem Code verwendet werden.The PermitOnly method should be used only to protect resources from accidental access by fully trusted code. Es sollte nicht verwendet werden zum Schutz von Ressourcen vor beabsichtigtem Missbrauch von nicht vertrauenswürdigem Code.It should not be used to protect resources from intentional misuse by untrusted code. Z. B. Wenn Methode A Probleme eine PermitOnly für eine Berechtigung und klicken Sie dann Aufrufe Methode B, Methode B kann einfach überschrieben werden die PermitOnly hierzu eine Assert.For example, if method A issues a PermitOnly for a permission and then calls method B, method B can overtly override the PermitOnly by issuing an Assert. Die aufgerufene Methode ist immer in der Aufrufliste.The called method is always higher in the stack. Aus diesem Grund Wenn Methode B versucht, eine geschützte Ressource, die das Sicherheitssystem zuzugreifen beginnt, damit die Berechtigungen überprüft werden, da Methode B der direkte Aufrufer ein, und dann führt nach unten im Stapel zu bestätigen, dass es keine Deny oder PermitOnly weiter unten in den Stapel.Therefore, if method B tries to access a protected resource, the security system begins checking for permissions with it because method B is the immediate caller, and then walks down the stack to confirm that there is no Deny or PermitOnly lower in the stack. Methode B, die versucht, auf die Ressource zuzugreifen, kann den Stackwalk sofort beenden mithilfe der Assert Methode.Method B, which is trying to access the resource, can stop the stack walk immediately by using the Assert method. In diesem Fall die PermitOnly auf dem Stapel abgelegt, von der Methode A (die aufrufende Methode) wird nicht gefunden.In that case, the PermitOnly placed on the stack by method A (the calling method) is never discovered.

PermitOnly ist vergleichbar mit Deny, beide Stackwalk fehlschlägt, wenn sie normalerweise gelingen würde.PermitOnly is similar to Deny, in that both cause stack walks to fail when they would otherwise succeed. Der Unterschied besteht darin, die Deny gibt an, die Berechtigungen den Stackwalk nicht ausgeführt wird, werden aber PermitOnly gibt nur die Berechtigungen, die nicht durch den Stackwalk fehlschlagen können.The difference is that Deny specifies permissions that will cause the stack walk to fail, but PermitOnly specifies the only permissions that do not cause the stack walk to fail.

Rufen Sie diese Methode, um sicherzustellen, dass Ihr Code verwendet werden kann, um nur die angegebenen Ressourcen zugreifen.Call this method to ensure that your code can be used to access only the specified resources. Der Aufruf von PermitOnly bleibt wirksam, bis der aufrufende Code an den Aufrufer zurückgibt.The call to PermitOnly is effective until the calling code returns to its caller. Nur ein PermitOnly kann auf einen Rahmen aktiv sein.Only one PermitOnly can be active on a frame. Ein Versuch des Aufrufs PermitOnly bei einer aktiven PermitOnly vorhanden ist, auf die Ergebnisse der Frame in einer SecurityException.An attempt to call PermitOnly when an active PermitOnly exists on the frame results in a SecurityException. Rufen Sie RevertPermitOnly oder RevertAll So entfernen Sie ein aktives PermitOnly.Call RevertPermitOnly or RevertAll to remove an active PermitOnly.

PermitOnly wird für eine Berechtigung nicht erteilt werden, da eine Anforderung für diese Berechtigung nicht fehlschlagen wird ignoriert.PermitOnly is ignored for a permission not granted because a demand for that permission will not succeed. Jedoch, wenn Code, die sich auf den Aufruf einer niedrigeren später stack Aufrufe Demand für diese Berechtigung, eine SecurityException wird ausgelöst, wenn der Stapeldurchlauf der Code erreicht wird, die zum Aufrufen PermitOnly.However, if code lower on the call stack later calls Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call PermitOnly. Dies ist, da der Code, der aufgerufen PermitOnly nicht wurde die Berechtigung erteilt hat, auch wenn er aufgerufen PermitOnly für diese Berechtigung.This is because the code that called PermitOnly has not been granted the permission, even though it called PermitOnly for that permission. Die Aufrufliste wird in der Regel als absteigend, dargestellt, sodass Methoden, die in der Aufrufliste höher Methoden in der Aufrufliste niedrigere aufrufen.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack.

Hinweise für Vererber

Sie können nicht auf diese Methode überschreiben.You cannot override this method.

Gilt für: