SecurityException Class

Definition

The exception that is thrown when a security error is detected.

[System.Runtime.InteropServices.ComVisible(true)]
public class SecurityException : SystemException
Inheritance
Attributes

Inherited Members

System.Exception

System.Object

Remarks

A SecurityException exception is thrown when a caller does not have the permissions required to access a resource. The following example instantiates a PermissionSet object that includes a UIPermission object to allow access to UI objects and the Clipboard and a RegistryPermission object to prevent registry access. The call to the PermissionSet.PermitOnly method means that these permissions will apply regardless of the permissions assigned to the caller. As a result, the attempt to create a registry key throws a SecurityException.

using Microsoft.Win32;
using System;
using System.Security;
using System.Security.Permissions;

public class Example
{
   public static void Main()
   {
      PermissionSet perms = new PermissionSet(null);
      perms.AddPermission(new UIPermission(PermissionState.Unrestricted));
      perms.AddPermission(new RegistryPermission(PermissionState.None));
      perms.PermitOnly();
      
      try {
          RegistryKey key = Registry.CurrentUser.CreateSubKey("MyCompany\\Applications");
          Console.WriteLine("Registry key: {0}", key.Name);
      }
      catch (SecurityException e) {
         Console.WriteLine("Security Exception:\n\n{0}", e.Message);      
      }
   }
}
// The example displays the following output:
//    Security Exception:
//    
//    Request for the permission of type 'System.Security.Permissions.RegistryPermission, 
//    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Imports Microsoft.Win32
Imports System.Security
Imports System.Security.Permissions

Module Example
   Public Sub Main()
      Dim perms As New PermissionSet(CType(Nothing, PermissionSet))
      perms.AddPermission(New UIPermission(PermissionState.Unrestricted))
      perms.AddPermission(New RegistryPermission(PermissionState.None))
      perms.PermitOnly()
      
      Try 
          Dim key As RegistryKey = Registry.CurrentUser.CreateSubKey("MyCompany\\Applications")
          Console.WriteLine("Registry key: {0}", key.Name)
      Catch e As SecurityException
         Console.WriteLine("Security Exception:\n\n{0}", e.Message)      
      End Try
   End Sub
End Module
' The example displays the following output:
'    Security Exception:
'    
'    Request for the permission of type 'System.Security.Permissions.RegistryPermission, 
'    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

SecurityException uses the HRESULT COR_E_SECURITY, which has the value 0x8013150A.

For a list of the initial property values for an instance of the SecurityException class, see a specific SecurityException constructor.

Constructors

SecurityException()

Initializes a new instance of the SecurityException class with default properties.

SecurityException(String)

Initializes a new instance of the SecurityException class with a specified error message.

SecurityException(SerializationInfo, StreamingContext)

Initializes a new instance of the SecurityException class with serialized data.

SecurityException(String, Exception)

Initializes a new instance of the SecurityException class with a specified error message and a reference to the inner exception that is the cause of this exception.

SecurityException(String, Type)

Initializes a new instance of the SecurityException class with a specified error message and the permission type that caused the exception to be thrown.

SecurityException(String, Type, String)

Initializes a new instance of the SecurityException class with a specified error message, the permission type that caused the exception to be thrown, and the permission state.

SecurityException(String, Object, Object, MethodInfo, Object, IPermission)

Initializes a new instance of the SecurityException class for an exception caused by a Deny on the stack.

SecurityException(String, AssemblyName, PermissionSet, PermissionSet, MethodInfo, SecurityAction, Object, IPermission, Evidence)

Initializes a new instance of the SecurityException class for an exception caused by an insufficient grant set.

Properties

Action

Gets or sets the security action that caused the exception.

Demanded

Gets or sets the demanded security permission, permission set, or permission set collection that failed.

DenySetInstance

Gets or sets the denied security permission, permission set, or permission set collection that caused a demand to fail.

FailedAssemblyInfo

Gets or sets information about the failed assembly.

FirstPermissionThatFailed

Gets or sets the first permission in a permission set or permission set collection that failed the demand.

GrantedSet

Gets or sets the granted permission set of the assembly that caused the SecurityException.

Method

Gets or sets the information about the method associated with the exception.

PermissionState

Gets or sets the state of the permission that threw the exception.

PermissionType

Gets or sets the type of the permission that failed.

PermitOnlySetInstance

Gets or sets the permission, permission set, or permission set collection that is part of the permit-only stack frame that caused a security check to fail.

RefusedSet

Gets or sets the refused permission set of the assembly that caused the SecurityException.

Url

Gets or sets the URL of the assembly that caused the exception.

Zone

Gets or sets the zone of the assembly that caused the exception.

Methods

GetObjectData(SerializationInfo, StreamingContext)

Sets the SerializationInfo with information about the SecurityException.

ToString()

Returns a representation of the current SecurityException.