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 (Demand, Assert, etc.).
- pset
- PermissionSet
El conjunto de permisos al que se aplica la acción.
Excepciones
El action no es válido (RequestMinimum, RequestOptional y RequestRefuse no son válidos).
Tipo contenedor que se ha creado mediante CreateType().
o bien
El conjunto de permisos pset contiene una acción que AddDeclarativeSecurity(SecurityAction, PermissionSet) agregó anteriormente.
o bien
Para el método actual, la propiedad IsGenericMethod es true, pero la propiedad IsGenericMethodDefinition 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.
Nota
En las versiones 1.0, 1.1 y 2.0 de .NET Framework, los atributos de seguridad declarativos aplicados a un método mediante el AddDeclarativeSecurity método se almacenan en el formato de metadatos XML antiguo. Consulte Emisión de atributos de seguridad declarativos.