[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method)] |
The security information declared by a security attribute is stored in the metadata of the attribute target and is accessed by the system at run time. Security attributes are used only for declarative security. For imperative security, use the corresponding permission class.
[assembly:SecurityPermissionAttribute(SecurityAction.RequestMinimum, Assertion=true)] //In C#, you must specify that you are using the assembly scope when making a request.
The following example shows how to demand that the calling code has SecurityPermission at link time. Demands are typically made in managed libraries (DLLs) to protect methods or classes from potentially harmful code.
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Unrestricted=true)]
ctor #1 | Initializes a new instance of the SecurityPermissionAttribute class with the specified SecurityAction. |
Action (inherited from System.Security.Permissions.SecurityAttribute) |
Read-write See base class member description: System.Security.Permissions.SecurityAttribute.Action Gets or sets a security action. |
Assertion | Read-write Gets or sets a value indicating whether permission to assert that all this code's callers have the requisite permission for the operation is declared. |
ControlAppDomain | Read-write Gets or sets a value indicating whether permission to manipulate AppDomain is declared. |
ControlDomainPolicy | Read-write Gets or sets a value indicating whether permission to alter or manipulate domain security policy is declared. |
ControlEvidence | Read-write Gets or sets a value indicating whether permission to alter or manipulate evidence is declared. |
ControlPolicy | Read-write Gets or sets a value indicating whether permission to view and manipulate security policy is declared. |
ControlPrincipal | Read-write Gets or sets a value indicating whether permission to manipulate the current principal is declared. |
ControlThread | Read-write Gets or sets a value indicating whether permission to manipulate threads is declared. |
Execution | Read-write Gets or sets a value indicating whether permission to execute code is declared. |
Flags | Read-write Gets or sets all permission flags comprising the SecurityPermission permissions. |
Infrastructure | Read-write Gets or sets a value indicating whether code can plug into the common language runtime infrastructure, such as adding Remoting Context Sinks, Envoy Sinks and Dynamic Sinks. |
RemotingConfiguration | Read-write Gets or sets a value indicating whether code can configure remoting types and channels. |
SerializationFormatter | Read-write Gets or sets a value indicating whether code can use a serialization formatter to serialize or deserialize an object. |
SkipVerification | Read-write Gets or sets a value indicating whether permission to bypass code verification is declared. |
TypeId (inherited from System.Attribute) |
Read-only See base class member description: System.Attribute.TypeId When implemented in a derived class, gets a unique identifier for this Attribute. |
UnmanagedCode | Read-write Gets or sets a value indicating whether permission to call unmanaged code is declared. |
Unrestricted (inherited from System.Security.Permissions.SecurityAttribute) |
Read-write See base class member description: System.Security.Permissions.SecurityAttribute.Unrestricted Gets or sets a value indicating whether full (unrestricted) permission to the resource protected by the attribute is declared. |
CreatePermission | Overridden: Creates and returns a new SecurityPermission. |
Equals (inherited from System.Object) |
See base class member description: System.Object.Equals Derived from System.Object, the primary base class for all objects. |
GetHashCode (inherited from System.Attribute) |
See base class member description: System.Attribute.GetHashCode Returns the hash code for this instance. |
GetType (inherited from System.Object) |
See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
IsDefaultAttribute (inherited from System.Attribute) |
See base class member description: System.Attribute.IsDefaultAttribute When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class. |
Match (inherited from System.Attribute) |
See base class member description: System.Attribute.Match When overridden in a derived class, returns a value indicating whether this instance equals a specified object. |
ToString (inherited from System.Object) |
See base class member description: System.Object.ToString Derived from System.Object, the primary base class for all objects. |
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:
public SecurityPermissionAttribute( |
action
public SecurityAction Action {get; set;}
|
public bool Assertion {get; set;}
|
public bool ControlAppDomain {get; set;}
|
public bool ControlDomainPolicy {get; set;}
|
public bool ControlEvidence {get; set;}
|
public bool ControlPolicy {get; set;}
|
public bool ControlPrincipal {get; set;}
|
public bool ControlThread {get; set;}
|
public bool Execution {get; set;}
|
public SecurityPermissionFlag Flags {get; set;}
|
Exception Type | Condition |
---|---|
ArgumentException | An attempt is made to set this property to an invalid value. See SecurityPermissionFlag for the valid values. |
public bool Infrastructure {get; set;}
|
public bool RemotingConfiguration {get; set;}
|
public bool SerializationFormatter {get; set;}
|
public bool SkipVerification {get; set;}
|
public virtual object TypeId {get;}
|
public bool UnmanagedCode {get; set;}
|
public bool Unrestricted {get; set;}
|
public override IPermission CreatePermission(); |
At compile time, attributes convert security declarations to a serialized form in metadata. Declarative security data in metadata is created from the permission that this method returns that corresponds to this attribute.
~SecurityPermissionAttribute(); |
public override int GetHashCode(); |
public Type GetType(); |
public virtual bool IsDefaultAttribute(); |
The implementation of this method in a derived class compares the value of this instance to a standard, default value obtained by some means, then returns a Boolean value that indicates whether the value of this instance is equal to the standard. The standard value is typically coded as a constant in the implementation, or stored programmatically in a field used by the implementation.
obj
protected object MemberwiseClone(); |
public virtual string ToString(); |