IPermission Interface


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Defines methods implemented by permission types.

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

type IPermission = 
        interface ISecurityEncodable


Creates and returns an identical copy of the current permission.


Throws a SecurityException at run time if the security requirement is not met.


Reconstructs a security object with a specified state from an XML encoding.(Inherited from ISecurityEncodable.)


Creates and returns a permission that is the intersection of the current permission and the specified permission.


Determines whether the current permission is a subset of the specified permission.


Creates an XML encoding of the security object and its current state.(Inherited from ISecurityEncodable.)


Creates a permission that is the union of the current permission and the specified permission.

Permissions in the common language runtime are objects that describe sets of operations that can be secured for specified resources. A permission object describes operations or access that is subject to security control; it does not represent access or a right to perform operations. Permissions are used by both application code and the .NET Framework security system in the following ways.

  • Code requests the permissions it needs in order to run.

  • The security system policy grants permissions to code in order for it to run.

  • Code demands that calling code has a permission.

  • Code overrides the security stack using assert/deny/permit-only.


If you write a new permission, you must implement this interface in your class.


A permission can be accessed by multiple threads. When implementing this interface, you must guarantee that the IsSubsetOf, Intersect, Union, and Copy method implementations are thread safe.

This example shows how to define a permission class for use with code access security. All of the necessary permission interfaces are implemented.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 1.1
Return to top