Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

CodeAccessPermission.RevertAll Method

Causes all previous overrides for the current frame to be removed and no longer in effect.

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

public:
static void RevertAll ()
public static void RevertAll ()
public static function RevertAll ()
Not applicable.
Exception typeCondition

ExecutionEngineException

There is no previous Assert, Deny, or PermitOnly for the current frame.

If there are no overrides (Assert, Deny, or PermitOnly) for the current frame, an ExecutionEngineException is thrown.

The following code example shows the use of the RevertAll method to revert previous overrides for the current frame.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::IO;

ref class UIPermissions
{
public:
   static void Main()
   {
      try
      {
         // Create a new UIPermission that allows access only to OwnClipboard.
         UIPermission^ clipboardPermission = gcnew UIPermission(
            UIPermissionClipboard::OwnClipboard );
         
         // Deny access to OwnClipboard.
         Console::WriteLine( L"Denying access to OwnClipboard" );
         clipboardPermission->Deny();
         
         // Demand access to files in the specified path.
         DemandOwnClipboardAccess();
         
         // Revert the Deny.
         Console::WriteLine( L"Reverting the Deny." );
         CodeAccessPermission::RevertDeny();
         DemandOwnClipboardAccess();

         // 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();

         // Permit access only to OwnClipboard.
         clipboardPermission->PermitOnly();
         DemandAllClipboardAccess();
         
         // Revert the PermitOnly with a call to RevertAll.
         Console::WriteLine( L"Reverting the PermitOnly using RevertAll." );
         CodeAccessPermission::RevertAll();
         DemandAllClipboardAccess();

         Console::WriteLine( L"This sample completed successfully; "
             L"press Enter to exit." );
         Console::ReadLine();
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( L"Unexpected exception thrown: \n{0}", e );
         Console::ReadLine();
      }
   }

private:
   // Determine whether OwnClipboard can be accessed.
   static void DemandOwnClipboardAccess()
   {
      try
      {
         // Create a new UIPermission that allows access to OwnClipboard.
         UIPermission^ clipboardPermission =
            gcnew UIPermission( UIPermissionClipboard::OwnClipboard );
         
         // Verify that callers higher in the stack have been granted
         // the permission.
         Console::WriteLine( L"Demanding OwnClipboard access." );
         clipboardPermission->Demand();
         Console::WriteLine( L"The demand was successful" );
      }
      catch ( SecurityException^ ex ) 
      {
         Console::WriteLine( L"A security exception was thrown while "
         L"demanding OwnClipboard access permission \n" );
         Console::WriteLine( ex->Message );
      }
      catch ( Exception^ ex ) 
      {
         Console::WriteLine( L"A fatal exception occurred:\n{0}", ex );
      }
   }

   // Determine whether OwnClipboard can be accessed.
   static void DemandAllClipboardAccess()
   {
      try
      {
         // Create a new UIPermission that allows access to OwnClipboard.
         UIPermission^ clipboardPermission =
            gcnew UIPermission( UIPermissionClipboard::AllClipboard );
         
         // Verify that callers higher in the stack have been granted
         // the permission.
         Console::WriteLine( L"Demanding AllClipboard access." );
         clipboardPermission->Demand();
         Console::WriteLine( L"The demand was successful" );
      }
      catch ( SecurityException^ ex ) 
      {
         Console::WriteLine( L"A security exception was thrown while "
         L"demanding AllClipboard access permission \n" );
         Console::WriteLine( ex->Message );
      }
      catch ( Exception^ ex ) 
      {
         Console::WriteLine( L"A fatal exception occurred:\n{0}", ex );
      }
   }

};

int main()
{
   UIPermissions::Main();
}


Windows 98, Windows Server 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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.