MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ajoute la sécurité déclarative à cette méthode.
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)
Paramètres
- action
- SecurityAction
Action de sécurité à effectuer (Demand, Assert, etc).
- pset
- PermissionSet
Jeu d’autorisations auquel la mesure s’applique.
Exceptions
L’action
n’est pas valide (RequestMinimum
, RequestOptional
et RequestRefuse
ne sont pas valides).
Le type conteneur a été créé à l’aide de CreateType().
- ou -
Le jeu d’autorisations pset
contient une action qui a déjà été ajoutée par AddDeclarativeSecurity(SecurityAction, PermissionSet).
- ou -
Pour la méthode actuelle, la propriété IsGenericMethod est true
, mais la propriété IsGenericMethodDefinition est false
.
pset
a la valeur null
.
Exemples
L’exemple de code ci-dessous illustre l’utilisation contextuelle de AddDeclarativeSecurity
pour exiger que l’appelant d’une méthode dispose d’autorisations illimitées.
// 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.
TypeBuilder^ myTypeBuilder = myModBuilder->DefineType( "MyType",
TypeAttributes::Public );
array<Type^>^ temp0 = {int::typeid, int::typeid};
MethodBuilder^ myMethod1 = myTypeBuilder->DefineMethod( "MyMethod",
MethodAttributes::Public,
int::typeid, temp0 );
PermissionSet^ myMethodPermissions = gcnew PermissionSet(
PermissionState::Unrestricted );
myMethod1->AddDeclarativeSecurity( SecurityAction::Demand,
myMethodPermissions );
// 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)
Remarques
AddDeclarativeSecurity peut être appelé plusieurs fois, chaque appel spécifiant une action de sécurité (par Demand
exemple , Assert
et Deny
) et un ensemble d’autorisations auxquelles l’action s’applique.
Notes
Dans les versions 1.0, 1.1 et 2.0 du .NET Framework, les attributs de sécurité déclaratifs appliqués à une méthode à l’aide de la AddDeclarativeSecurity méthode sont stockés dans l’ancien format de métadonnées XML. Consultez Émission d’attributs de sécurité déclaratifs.