CodeAccessPermission.PermitOnly Methode

Definition

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code, der diese Methode aufruft, verwenden, um auf alle Ressourcen außer die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.

public:
 virtual void PermitOnly();
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.

Hinweise

Wichtig

Die PermitOnly -Methode sollte nur verwendet werden, um Ressourcen vor versehentlichem Zugriff durch vollständig vertrauenswürdigen Code zu schützen. Es sollte nicht verwendet werden, um Ressourcen vor absichtlichem Missbrauch durch nicht vertrauenswürdigen Code zu schützen. Wenn die Methode A beispielsweise eine PermitOnly für eine Berechtigung ausgibt und dann die -Methode Baufruft, kann die -Methode B das PermitOnly überschreiben, indem sie einen Assertausgibt. Die aufgerufene Methode ist immer höher im Stapel. Wenn die Methode B versucht, auf eine geschützte Ressource zuzugreifen, beginnt das Sicherheitssystem daher mit der Überprüfung auf Berechtigungen, da die Methode B der unmittelbare Aufrufer ist, und geht dann im Stapel nach unten, um zu bestätigen, dass der Stapel nicht Deny oder PermitOnly niedriger ist. Die Methode B, die versucht, auf die Ressource zuzugreifen, kann den Stapellauf sofort mit der Assert -Methode beenden. In diesem Fall wird die auf dem PermitOnly Stapel nach Methode A platzierte Methode (die aufrufende Methode) nie erkannt.

PermitOnly Denyähnelt , da beide Stapelspaziergänge fehlschlagen, wenn sie andernfalls erfolgreich wären. Der Unterschied besteht darin, dass Deny Berechtigungen angegeben werden, die dazu führen, dass der Stapellauf fehlschlägt, aber PermitOnly die einzigen Berechtigungen angibt, die nicht dazu führen, dass der Stapellauf fehlschlägt.

Rufen Sie diese Methode auf, um sicherzustellen, dass Ihr Code nur für den Zugriff auf die angegebenen Ressourcen verwendet werden kann. Der Aufruf von ist wirksam, PermitOnly bis der aufrufende Code an seinen Aufrufer zurückgibt. Nur einer PermitOnly kann in einem Frame aktiv sein. Ein Aufrufversuch, wenn eine aktive PermitOnly im Frame vorhanden ist, führt zu PermitOnly einem SecurityException. Rufen Sie RevertPermitOnly auf, oder RevertAll entfernen Sie eine aktive PermitOnly.

PermitOnly wird für eine nicht erteilte Berechtigung ignoriert, da eine Anforderung dieser Berechtigung nicht erfolgreich ist. Wenn code niedriger auf der Aufrufliste später diese Berechtigung aufruft Demand , wird ein SecurityException ausgelöst, wenn der Stapellauf den Code erreicht, der versucht hat, aufzurufen PermitOnly. Dies liegt daran, dass dem code, der aufgerufen PermitOnly hat, die Berechtigung nicht erteilt wurde, obwohl er diese Berechtigung aufgerufen PermitOnly hat. Der Aufrufstapel wird in der Regel als nach unten wächst dargestellt, sodass Methoden höher im Aufrufstapel aufgerufen werden, die im Aufrufstapel niedriger sind.

Hinweise für Vererber

Sie können diese Methode nicht überschreiben.

Gilt für: