CodeAccessPermission.PermitOnly Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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();
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 ()
Implementiert
- Attribute
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 z. B. eine PermitOnly Berechtigung ausgibt und dann die Methode Baufruft, kann die Methode die PermitOnly Methode B übermäßig überschreiben, indem Sie eine Assert. Die aufgerufene Methode ist immer höher im Stapel. Wenn die Methode daher versucht, auf eine geschützte Ressource zuzugreifen, beginnt das Sicherheitssystem mit der Überprüfung auf Berechtigungen, da die Methode B B der sofortige Aufrufer ist, und führt dann den Stapel nach unten, um zu bestätigen, dass es im Stapel keine Deny oder PermitOnly niedriger ist. Die Methode B, die versucht, auf die Ressource zuzugreifen, kann den Stapellauf sofort mithilfe der Assert Methode beenden. In diesem Fall wird die PermitOnly auf dem Stapel platzierte Methode A (die aufrufende Methode) nie erkannt.
PermitOnly ist ähnlich wie Deny, in diesem beiden verursachen Stapelwanderungen einen Fehler, 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 PermitOnly ist wirksam, bis der Aufrufcode an den Aufrufer zurückgibt. Nur eine PermitOnly kann auf einem Frame aktiv sein. Ein Versuch, aufzurufen PermitOnly , wenn ein aktives PermitOnly Objekt im Frame vorhanden ist, führt zu einer SecurityException. Rufen Sie einen aktiven Aufruf RevertPermitOnly auf oder RevertAll entfernen Sie eine aktive PermitOnly.
PermitOnly wird für eine Berechtigung ignoriert, die nicht gewährt wird, da eine Anforderung für diese Berechtigung nicht erfolgreich ist. Wenn der Code jedoch später auf dem Aufrufstapel Demand für diese Berechtigung niedriger ist, wird eine SecurityException ausgelöst, wenn der Stapellauf den Code erreicht, der aufgerufen PermitOnlywerden soll. Dies liegt daran, dass der aufgerufene PermitOnly Code die Berechtigung nicht erteilt hat, auch wenn er für diese Berechtigung aufgerufen PermitOnly wurde. Der Aufrufstapel wird in der Regel als nach unten dargestellt, sodass methoden im Aufrufstapel-Aufrufmethoden weiter unten im Aufrufstapel liegen.
Hinweise für Vererber
Sie können diese Methode nicht außer Kraft setzen.