Export (0) Print
Expand All

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

ExceptionCondition
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 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft