System.Security (mscorlib.dll) | interface |
public interface IPermission : ISecurityEncodable { // Public Instance Methods public IPermission Copy( ); public void Demand( ); public IPermission Intersect(IPermission target); public bool IsSubsetOf(IPermission target); public IPermission Union(IPermission target); } This IPermission interface defines the minimum set of methods that all permission classes must implement if they are to integrate with the code-access security framework of the .NET runtime. IPermission defines the Demand( ) method, which is the most fundamental mechanism used to enforce code-access security. Demand( ) invokes a security demand for the implementing permission object. This ensures that calling code has the permission; otherwise, a SecurityException is thrown. All of the standard code-access and identity permissions implement the IStackWalk interface, which also defines a Demand( ) method. The IStackWalk.Demand( ) method initiates a stack-walk-based security demand, whereas IPermission.Demand( ) is intended for use by permission classes that do not use stack walks for example, the System.Security.Permissions.PrincipalPermission class. The exact behavior of the Copy( ), Intersect( ), IsSubsetOf( ), and Union( ) methods vary based on the nature of the implementing permission class. Copy( ) returns a deep copy of the permission. Intersect( ) returns a new permission that represents the logical intersection of the current and a specified IPermission, whereas Union( ) returns the logical union of the two IPermission objects. IsSubsetOf( ) indicates whether the current IPermission represents a subset of the specified IPermission. Implemented By CodeAccessPermission, System.Security.Permissions.PrincipalPermission Returned By Multiple types Passed To CodeAccessPermission.{Intersect( ), IsSubsetOf( ), Union( )}, System.Security.Permissions.PrincipalPermission.{Intersect( ), IsSubsetOf( ), Union( )}, PermissionSet.{AddPermission( ), SetPermission( )}, SecurityManager.IsGranted( ) |