MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Adiciona segurança 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
A ação de segurança a tomar (Exigir, Afirmar, e assim por diante).
- pset
- PermissionSet
O conjunto de permissões a que a ação se aplica.
Exceções
O action é inválido (RequestMinimum, RequestOptional, e RequestRefuse são inválidos).
O tipo de contenção foi criado usando CreateType().
-ou-
O conjunto pset de permissões contém uma ação que foi adicionada anteriormente por AddDeclarativeSecurity(SecurityAction, PermissionSet).
-ou-
Para o método atual, a IsGenericMethod propriedade é true, mas a IsGenericMethodDefinition propriedade é false.
pset é null.
Exemplos
O exemplo de código abaixo ilustra o uso contextual de AddDeclarativeSecurity para exigir que o chamador de um método tenha permissões irrestritas.
// 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)
Observações
AddDeclarativeSecurity pode ser chamada várias vezes, com cada chamada a especificar uma ação de segurança (como Demand, Assert, e Deny) e um conjunto de permissões a que a ação se aplica.
Note
Nas versões 1.0, 1.1 e 2.0 do Framework .NET, os atributos declarativos de segurança aplicados a um método usando o método AddDeclarativeSecurity são armazenados no antigo formato de metadados XML. Ver Emissão de Atributos de Segurança Declarativa.