Name
IStackWalk
Synopsis
public interface IStackWalk { // Public Instance Methods public void Assert( ); public void Demand( ); public void Deny( ); public void PermitOnly( ); }
Permission classes that use stack walks to resolve security demands
implement the IStackWalk interface. These include
the PermissionSet class, as well as the
CodeAccessPermission class, from which all
standard code-access and identity permissions inherit.
IStackWalk defines the Demand(
) method, which duplicates the method of the same name
defined in the IPermission interface. However, the
IStackWalk.Demand( ) method initiates a
stack-walk-based security demand, whereas
IPermission.Demand( ) is not intended to use the
call stack to resolve security demands. The Assert(
), Deny( ), and PermitOnly(
) methods annotate the call stack frame of the code from
which they are executed, and affect the stack walk process initiated
by a Demand( ) call.
Assert( ) allows code to vouch for the permissions
of the callers above it on the call stack. During a stack walk, if a
demanded permission matches, or is a subset of, the asserted
permission, the stack walk terminates successfully without evaluating
further stack frames. If the asserted permissions provide only a
partial match of those demanded, the stack walk continues but only
for the remaining unasserted permissions. Code must have been granted
a permission in order to assert it, and the code must have the
permission to assert defined by the
System.Security.Permissions.SecurityPermission ...