Partager via


Sécurité déclarative

La syntaxe de sécurité déclarative utilise des attributs pour placer les informations de sécurité dans les métadonnées de votre code. Les attributs peuvent être placés au niveau de l'assembly, de la classe ou du membre pour indiquer le type de demande, d'exigence ou de substitution que vous souhaitez utiliser. Les demandes sont utilisées dans les applications qui ciblent le Common Language Runtime pour informer le système de sécurité du runtime des autorisations dont votre application a besoin ou qu'elle refuse. Les exigences et les substitutions sont utilisées dans les bibliothèques pour protéger les ressources des appelants ou substituer le comportement de sécurité par défaut.

Avant de procéder à l'appel de sécurité, vous devez initialiser les données d'état de l'objet d'autorisation de sorte qu'elles représentent la forme particulière de l'autorisation dont vous avez besoin. Chaque autorisation intégrée a un attribut auquel une énumération SecurityAction est passée pour décrire le type d'opération de sécurité que vous souhaitez effectuer. Les autorisations acceptent toutefois aussi leurs propres paramètres qui leur sont exclusifs. Pour une description complète des paramètres spécifiques aux autorisations, consultez la section décrivant les autorisations intégrées.

Le fragment de code suivant illustre la syntaxe déclarative permettant de demander que les appelants de votre code aient une autorisation personnalisée appelée MyPermission. Cette autorisation est une autorisation personnalisée hypothétique et n'existe pas dans le .NET Framework. Dans cet exemple, l'appel déclaratif est placé directement avant la définition de classe, spécifiant que cette autorisation doit être appliquée au niveau de la classe. Une structure SecurityAction.Demand est passée à l'attribut pour spécifier que les appelants doivent avoir cette autorisation pour pouvoir s'exécuter.

<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
   
   Public Sub New()
      'The constructor is protected by the security call.
   End Sub
   
   
   Public Sub MyMethod()
      'This method is protected by the security call.
   End Sub
   
   
   Public Sub YourMethod()
      'This method is protected by the security call.
   End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
   public MyClass()
   {
      //The constructor is protected by the security call.
   }

   public void MyMethod()
   {
      //This method is protected by the security call.
   }

   public void YourMethod()
   {
      //This method is protected by the security call.
   }
}

Voir aussi

Référence

SecurityAction

Concepts

Syntaxe de sécurité
Autorisations de sécurité

Autres ressources

Extension des métadonnées à l'aide des attributs
Sécurité d'accès du code
Métadonnées et composants autodescriptifs