Objets PrincipalPermission
Le modèle de sécurité basé sur les rôles prend en charge un objet d'autorisation semblable aux objets d'autorisation rencontrés dans le modèle de sécurité d'accès du code. Cet objet, PrincipalPermission, représente l'identité et le rôle qu'une classe principale spécifique doit avoir pour être exécutée. Vous pouvez utiliser la classe PrincipalPermission pour les vérifications de sécurité impératives et déclaratives.
Pour implémenter la classe PrincipalPermission de manière impérative, créez une nouvelle instance de la classe, puis initialisez-la avec le nom et le rôle que doivent avoir les utilisateurs pour accéder à votre code. Par exemple, le code suivant initialise une nouvelle instance de cet objet avec l'identité "Joan" et le rôle "Teller".
String id = "Joan";
String role = "Teller";
PrincipalPermission principalPerm = new PrincipalPermission(id, role);
Dim id As String = "Joan"
Dim role As String = "Teller"
Dim principalPerm As New PrincipalPermission(id, role)
Vous pouvez créer une autorisation similaire de manière déclarative, à l'aide de la classe PrincipalPermissionAttribute. Le code suivant initialise de manière déclarative l'identité et le rôle à "Joan" et "Teller", respectivement.
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Joan", Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "Joan", Role := "Teller")>
Lors du contrôle de sécurité, l'identité et le rôle spécifiés doivent tous deux correspondre pour que le contrôle soit effectué avec succès. Toutefois, lorsque vous créez l'objet PrincipalPermission, vous pouvez passer une chaîne d'identité null, ce qui indique que l'identité de l'entité de sécurité importe peu. De la même façon, une chaîne de rôle null indique que l'entité de sécurité peut être membre de n'importe quel rôle (ou n'appartenir à aucun rôle). Le même résultat peut être obtenu pour la sécurité déclarative, en omettant ces deux propriétés. Par exemple, le code suivant utilise le PrincipalPermissionAttribute pour indiquer de manière déclarative qu'une entité de sécurité peut avoir n'importe quel nom, mais que son rôle doit être "Teller".
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Role := "Teller")>