Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

CodeAccessPermission.PermitOnly-Methode

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.

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

public void PermitOnly()

Implementiert

IStackWalk.PermitOnly()

AusnahmeBedingung
SecurityException

Es ist bereits ein aktives PermitOnly für den aktuellen Frame vorhanden.

Wichtiger HinweisWichtig

Die PermitOnly-Methode sollte nur zum Schutz von Ressourcen vor versehentlichem Zugriff durch voll vertrauenswürdigen Code verwendet werden. Sie sollte nicht verwendet werden, um Ressourcen vor absichtlichem Missbrauch durch nicht vertrauenswürdigen Code zu schützen. Wenn beispielsweise die Methode A ein PermitOnly für eine Berechtigung ausgibt und anschließend die Methode B aufruft, kann PermitOnly von der Methode B einfach durch Ausgeben eines Assert überschrieben werden. Bei der aufgerufenen Methode handelt es sich immer um eine übergeordnete Methode im Stapel. Wenn daher die Methode B versucht, auf eine geschützte Ressource zuzugreifen, überprüft das Sicherheitssystem damit die Berechtigungen, da es sich bei der B-Methode um den unmittelbaren Aufrufer handelt. Anschließend wird der Stapel in Abwärtsrichtung durchlaufen, um sich zu vergewissern, dass keine untergeordnete Deny- oder PermitOnly-Methode im Stapel vorhanden ist. Das Durchlaufen des Stapels kann von der Methode B, die versucht, auf die Ressource zuzugreifen, durch Aufrufen der Assert-Methode ohne Weiteres angehalten werden. In diesem Fall bleibt das PermitOnly unentdeckt, das durch die (aufrufende) Methode A im Stapel abgelegt wurde.

PermitOnly ähnelt Deny, da beide einen sonst erfolgreichen Stackwalk fehlschlagen lassen. Der Unterschied besteht darin, dass Deny Berechtigungen angibt, die den Stackwalk fehlschlagen lassen, während PermitOnly die Berechtigungen angibt, für welche ein Stackwalk erfolgreich verläuft.

Rufen Sie diese Methode auf, um sicherzustellen, dass über Ihren Code ausschließlich auf die angegebenen Ressourcen zugegriffen werden kann. Der Aufruf von PermitOnly ist so lange wirksam, bis der aufrufende Code beendet wird und zu dessen Aufrufer zurückkehrt. Für einen Frame kann immer nur ein PermitOnly aktiv sein. Ein Versuch, PermitOnly aufzurufen, wenn ein aktives PermitOnly für den Frame vorhanden ist, führt zu einer SecurityException. Rufen Sie RevertPermitOnly oder RevertAll auf, um ein aktives PermitOnly zu entfernen.

PermitOnly wird bei nicht gewährten Berechtigungen ignoriert, da eine Anforderung für die Berechtigung fehlschlagen würde. Wenn jedoch untergeordneter Code in der Aufrufliste später Demand für die Berechtigung aufruft, wird eine SecurityException ausgelöst, sobald beim Stackwalk der Code erreicht wird, in dem der Aufruf von PermitOnly versucht wurde. Der Grund hierfür ist, dass dem PermitOnly aufrufenden Code die Berechtigung nicht gewährt wurde, obwohl dieser PermitOnly für diese Berechtigung aufgerufen hat. Eine Aufrufliste wird i. d. R. als absteigend geordnet dargestellt, sodass übergeordnete Methoden in der Aufrufliste untergeordnete Methoden aufrufen.

Hinweise zur Vererbung

Diese Methode kann nicht überschrieben werden.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft