MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.