MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Método

Definición

Agrega seguridad declarativa a este método.

public:
 void AddDeclarativeSecurity(System::Security::Permissions::SecurityAction action, System::Security::PermissionSet ^ pset);
public void AddDeclarativeSecurity(System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset);
member this.AddDeclarativeSecurity : System.Security.Permissions.SecurityAction * System.Security.PermissionSet -> unit
Public Sub AddDeclarativeSecurity (action As SecurityAction, pset As PermissionSet)

Parámetros

action
SecurityAction

Acción de seguridad que se va a realizar (Demanda, Aserción, etc.).

pset
PermissionSet

El conjunto de permisos a los que se aplica la acción.

Excepciones

no action es válido (RequestMinimum, RequestOptionaly RequestRefuse no son válidos).

El tipo contenedor se ha creado mediante CreateType().

O bien

El conjunto pset de permisos contiene una acción que agregó anteriormente AddDeclarativeSecurity(SecurityAction, PermissionSet).

O bien

Para el método actual, la IsGenericMethod propiedad es true, pero la IsGenericMethodDefinition propiedad es false.

pset es null.

Ejemplos

En el ejemplo de código siguiente se muestra el uso contextual de AddDeclarativeSecurity para requerir que el autor de la llamada de un método tenga permisos sin restricciones.

// myModBuilder is an instance of ModuleBuilder.

TypeBuilder myTypeBuilder = myModBuilder.DefineType("MyType",
                    TypeAttributes.Public);

MethodBuilder myMethod1 = myTypeBuilder.DefineMethod("MyMethod",
                    MethodAttributes.Public,
                    typeof(int),
                    new Type[]
                    {typeof(int), typeof(int)});	

PermissionSet myMethodPermissions = new PermissionSet(
            PermissionState.Unrestricted);

myMethod1.AddDeclarativeSecurity(SecurityAction.Demand,
                 myMethodPermissions);
' myModBuilder is an instance of ModuleBuilder.
' Note that for the use of PermissionSet and SecurityAction,
' the namespaces System.Security and System.Security.Permissions
' should be included.
Dim myTypeBuilder As TypeBuilder = myModBuilder.DefineType("MyType", _
                        TypeAttributes.Public)

Dim myMethod1 As MethodBuilder = myTypeBuilder.DefineMethod("MyMethod", _
                       MethodAttributes.Public, _
                       GetType(Integer), _
                       New Type() {GetType(Integer), GetType(Integer)})

Dim myMethodPermissions As New PermissionSet(PermissionState.Unrestricted)

myMethod1.AddDeclarativeSecurity(SecurityAction.Demand, myMethodPermissions)

Comentarios

AddDeclarativeSecurity se puede llamar varias veces, con cada llamada que especifica una acción de seguridad (como Demand, Asserty Deny) y un conjunto de permisos a los que se aplica la acción.

Note

En .NET Framework versiones 1.0, 1.1 y 2.0, los atributos de seguridad declarativos aplicados a un método mediante el método AddDeclarativeSecurity se almacenan en el formato de metadatos XML antiguo. Consulte Emisión de atributos de seguridad declarativos.

Se aplica a