[Serializable] |
The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack.
Assert | Asserts that calling code can access the resource identified by the current permission through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. |
Copy | When implemented by a derived class, creates and returns an identical copy of the current permission object. |
Demand | Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance. |
Deny | Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance. |
Equals (inherited from System.Object) |
See base class member description: System.Object.Equals Derived from System.Object, the primary base class for all objects. |
FromXml | When overridden in a derived class, reconstructs a security object with a specified state from an XML encoding. |
GetHashCode (inherited from System.Object) |
See base class member description: System.Object.GetHashCode Derived from System.Object, the primary base class for all objects. |
GetType (inherited from System.Object) |
See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
Intersect | When implemented by a derived class, creates and returns a permission that is the intersection of the current permission and the specified permission. |
IsSubsetOf | When implemented by a derived class, determines whether the current permission is a subset of the specified permission. |
PermitOnly | Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance. |
RevertAll | Causes all previous overrides for the current frame to be removed and no longer in effect. |
RevertAssert | Causes any previous CodeAccessPermission.Assert for the current frame to be removed and no longer in effect. |
RevertDeny | Causes any previous CodeAccessPermission.Deny for the current frame to be removed and no longer in effect. |
RevertPermitOnly | Causes any previous CodeAccessPermission.PermitOnly for the current frame to be removed and no longer in effect. |
ToString | Overridden: Creates and returns a string representation of the current permission object. |
ToXml | When overridden in a derived class, creates an XML encoding of the security object and its current state. |
Union | When overridden in a derived class, creates a permission that is the union of the current permission and the specified permission. |
ctor #1 | Default constructor. This constructor is called by derived class constructors to initialize state in this type. |
Finalize (inherited from System.Object) |
See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. |
MemberwiseClone (inherited from System.Object) |
See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. |
Hierarchy:
protected CodeAccessPermission(); |
public void Assert(); |
Exception Type | Condition |
---|---|
SecurityException | The calling code does not have SecurityPermissionFlag.Assertion. -or- There is already an active CodeAccessPermission.Assert for the current frame. |
The call to CodeAccessPermission.Assert is effective until the calling code returns to its caller. Only one CodeAccessPermission.Assert can be active on a frame. An attempt to call CodeAccessPermission.Assert when an active CodeAccessPermission.Assert exists on the frame results in a SecurityException. Call CodeAccessPermission.RevertAssert or CodeAccessPermission.RevertAll to remove an active CodeAccessPermission.Assert.
CodeAccessPermission.Assert is ignored for a permission not granted because a demand for that permission will not succeed. However, if code lower on the call stack calls CodeAccessPermission.Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call CodeAccessPermission.Assert. This happens because the code that called CodeAccessPermission.Assert has not been granted the permission, even though it tried to CodeAccessPermission.Assert it.
Because calling CodeAccessPermission.Assert removes the requirement that all code in the call chain must be granted permission to access the specified resource, it can open up security vulnerabilities if used incorrectly or inappropriately. Therefore, it should be used with great caution.
public abstract IPermission Copy(); |
public void Demand(); |
Exception Type | Condition |
---|---|
SecurityException | A caller higher in the call stack does not have the permission specified by the current instance. -or- A caller higher in the call stack has called CodeAccessPermission.Deny on the current permission object. |
The permissions of the code that calls this method are not examined; the check begins from the immediate caller of that code and proceeds up the stack. The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. CodeAccessPermission.Demand succeeds only if no SecurityException is raised.
public void Deny(); |
Exception Type | Condition |
---|---|
SecurityException | There is already an active CodeAccessPermission.Deny for the current frame. |
CodeAccessPermission.Deny can limit the liability of the programmer or prevent accidental security vulnerabilities because it prevents the method that calls CodeAccessPermission.Deny from being used to access the resource protected by the denied permission. If a method calls CodeAccessPermission.Deny on a permission, and if a CodeAccessPermission.Demand for that permission is invoked by a caller lower in the call stack, that security check will fail when it reaches the CodeAccessPermission.Deny.
The call to CodeAccessPermission.Deny is effective until the calling code returns to its caller. Only one CodeAccessPermission.Deny can be active on a frame. An attempt to call CodeAccessPermission.Deny when an active CodeAccessPermission.Deny exists on the frame results in a SecurityException. Call CodeAccessPermission.RevertDeny or CodeAccessPermission.RevertAll to remove an active CodeAccessPermission.Deny. CodeAccessPermission.Deny is ignored for a permission not granted because a demand for that permission will not succeed.
~CodeAccessPermission(); |
public abstract void FromXml( |
elem
public virtual int GetHashCode(); |
public Type GetType(); |
public abstract IPermission Intersect( |
target
Exception Type | Condition |
---|---|
ArgumentException | The target parameter is not null and is not an instance of the same class as the current permission. |
public abstract bool IsSubsetOf( |
target
Exception Type | Condition |
---|---|
ArgumentException | The target parameter is not of the same type as the current permission. |
protected object MemberwiseClone(); |
public void PermitOnly(); |
Exception Type | Condition |
---|---|
SecurityException | There is already an active CodeAccessPermission.PermitOnly for the current frame. |
Call this method to ensure that your code can be used to access only the specified resources. The call to CodeAccessPermission.PermitOnly is effective until the calling code returns to its caller. Only one CodeAccessPermission.PermitOnly can be active on a frame. An attempt to call CodeAccessPermission.PermitOnly when an active CodeAccessPermission.PermitOnly exists on the frame results in a SecurityException. Call CodeAccessPermission.RevertPermitOnly or CodeAccessPermission.RevertAll to remove an active CodeAccessPermission.PermitOnly.
CodeAccessPermission.PermitOnly is ignored for a permission not granted because a demand for that permission will not succeed. However, if code lower on the call stack later calls CodeAccessPermission.Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call CodeAccessPermission.PermitOnly. This is because the code that called CodeAccessPermission.PermitOnly has not been granted the permission, even though it called CodeAccessPermission.PermitOnly for that permission. The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack.
public static void RevertAll(); |
public static void RevertAssert(); |
public static void RevertDeny(); |
public static void RevertPermitOnly(); |
public override string ToString(); |
public abstract SecurityElement ToXml(); |
public virtual IPermission Union( |
other
Exception Type | Condition |
---|---|
NotSupportedException | The other parameter is not null. This method is only supported at this level when passed null. |