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)
Syntax
'Declaration
Public Sub PermitOnly
'Usage
Dim instance As CodeAccessPermission
instance.PermitOnly
public void PermitOnly ()
public:
virtual void PermitOnly () sealed
public final void PermitOnly ()
public final function PermitOnly ()
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Es ist bereits ein aktives PermitOnly für den aktuellen Frame vorhanden. |
Hinweise
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 für Erben Diese Methode kann nicht überschrieben werden.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie die PermitOnly zum Beschränken des Zugriffs auf alle Ressourcen mit Ausnahme der durch die aktuelle Instanz angegebenen Ressource verwendet wird. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die RevertAll-Methode.
' Grant access only to OwnClipboard.
Console.WriteLine("Granting permission only for OwnClipboard access.")
clipboardPermission.PermitOnly()
DemandAllClipboardAccess()
' Revert the PermitOnly with a call to RevertPermitOnly.
Console.WriteLine("Reverting the PermitOnly.")
CodeAccessPermission.RevertPermitOnly()
DemandAllClipboardAccess()
// Grant access only to OwnClipboard.
Console.WriteLine("Granting permission only for OwnClipboard access.");
clipboardPermission.PermitOnly();
DemandAllClipboardAccess();
// Revert the PermitOnly with a call to RevertPermitOnly.
Console.WriteLine("Reverting the PermitOnly.");
CodeAccessPermission.RevertPermitOnly();
DemandAllClipboardAccess();
// Grant access only to OwnClipboard.
Console::WriteLine( L"Granting permission only for OwnClipboard access." );
clipboardPermission->PermitOnly();
DemandAllClipboardAccess();
// Revert the PermitOnly with a call to RevertPermitOnly.
Console::WriteLine( L"Reverting the PermitOnly." );
CodeAccessPermission::RevertPermitOnly();
DemandAllClipboardAccess();
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
CodeAccessPermission-Klasse
CodeAccessPermission-Member
System.Security-Namespace
Weitere Ressourcen
Verwenden der PermitOnly-Methode
Außerkraftsetzen von Sicherheitsüberprüfungen