Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

CodeAccessPermission.PermitOnly-Methode: ()

 

Veröffentlicht: Oktober 2016

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.

Namespace:   System.Security
Assembly:  mscorlib (in mscorlib.dll)

public void PermitOnly()

Exception Condition
SecurityException

Es ist bereits eine aktive PermitOnly für den aktuellen Frame vorhanden.

System_CAPS_importantWichtig

Die PermitOnly -Methode sollte nur zum Schutz von Ressourcen vor versehentlichem Zugriff durch voll vertrauenswürdigen Code verwendet werden. Sie sollte nicht verwendet werden, die Ressourcen vor beabsichtigtem Missbrauch zu schützen durch nicht vertrauenswürdigen Code. Z. B. Wenn Methode A Probleme eine PermitOnly für eine Berechtigung und dann die Methode Aufrufe B, Methode B kann einfach überschrieben werden die PermitOnly durch Ausgeben einer Assert. Die aufgerufene Methode wird immer in der Aufrufliste. Aus diesem Grund Wenn Methode B versucht, eine geschützte Ressource, das Sicherheitssystem beginnt, damit die Berechtigungen überprüft werden, da Methode B der direkte Aufrufer, und klicken Sie dann unten durchläuft den Stapel zu bestätigen, dass es keine Deny oder PermitOnly unten im Stapel. Methode B, die versucht, auf die Ressource zuzugreifen, können sofort zu beenden den Stackwalk mithilfe der Assert Methode. In diesem Fall die PermitOnly auf dem Stapel abgelegt werden, indem die Methode A (die aufrufende Methode) wird nicht erkannt.

PermitOnly ähnelt dem Deny, da sich beide Stackwalk fehlschlägt, wenn sie gelingen würde. Der Unterschied besteht darin, die Deny Gibt die Berechtigungen den Stackwalk fehlschlägt, werden aber PermitOnly Gibt an, die nur Berechtigungen, die nicht durch den Stackwalk fehlschlagen können.

Rufen Sie diese Methode, um sicherzustellen, dass der Code verwendet werden kann, um nur die angegebenen Ressourcen zugreifen. Der Aufruf von PermitOnly bleibt wirksam, bis der aufrufende Code an den Aufrufer zurückgibt. Nur ein PermitOnly kann in einem Stapelrahmen aktiv sein. Versuch, rufen Sie PermitOnly bei einer aktiven PermitOnly vorhanden ist, auf die Frame-Ergebnisse in einer SecurityException. Rufen Sie RevertPermitOnly oder RevertAll So entfernen Sie ein aktives PermitOnly.

PermitOnly wird ignoriert, für eine Berechtigung nicht erteilt werden, da eine Anforderung für die Berechtigung fehlschlagen würde. Jedoch wenn später-Code unten auf den Aufruf Stack ruft Demand für die Berechtigung, eine SecurityException wird ausgelöst, wenn der Stackwalk der Code erreicht wird, der Aufruf versucht wurde PermitOnly. Dies ist, da der Code, der aufgerufen PermitOnly hat nicht die Berechtigung gewährt wurde, erfolgt, obwohl dem PermitOnly für diese Berechtigung. Die Aufrufliste wird i. d. r. als absteigend, dargestellt, sodass übergeordnete Methoden in der Aufrufliste niedrigere Methoden aufrufen.

Hinweise für Vererber:

Sie können nicht auf diese Methode überschreiben.

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: