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