Utilisation de la méthode PermitOnly
Mise à jour : novembre 2007
L'appel à PermitOnly a principalement le même effet que l'appel à Deny mais est une façon différente permettant de spécifier les conditions dans lesquelles la vérification de sécurité doit échouer. Au lieu de dire qu'une ressource spécifiée n'est pas accessible, comme le fait Deny, PermitOnly dit que seules les ressources que vous spécifiez sont accessibles. Par conséquent, l'appel de PermitOnly sur autorisation X équivaut à appeler Deny sur toutes les autorisations sauf l'autorisation X. Si vous appelez PermitOnly, votre code peut être utilisé pour accéder uniquement aux ressources protégées par les autorisations que vous spécifiez lorsque vous appelez PermitOnly. Vous utilisez PermitOnly au lieu de Deny lorsqu'il est plus pratique de décrire les ressources qui sont accessibles que celles qui ne le sont pas.
Si votre code appelle PermitOnly sur une autorisation P1 et si les appelants en aval demandent alors l'autorisation P2, l'appel à PermitOnly affecte le résultat de la pile des appels uniquement si P1 et P2 sont de types différents et si P2 n'est pas un sous-ensemble de P1.
Les fragments de code suivants illustrent la syntaxe déclarative de substitution des vérifications de sécurité à l'aide de PermitOnly. Les appelants ne peuvent pas utiliser ce code pour accéder aux ressources protégées, excepté aux ressources interface utilisateur. .
Option Explicit
Option Strict
Imports System
Imports System.Security.Permissions
Public Class MyClass1
Public Sub New()
End Sub
<UIPermissionAttribute(SecurityAction.PermitOnly, Unrestricted := True)> Public Sub
ReadRegistry()
'Access a UI resource.
End Sub
End Class
using System;
using System.Security.Permissions;
public class MyClass
{
public MyClass() {
}
[UIPermissionAttribute(SecurityAction.PermitOnly, Unrestricted=true)]
public void ReadRegistry() {
//Access a UI resource.
}
}
L'exemple de code suivant illustre la syntaxe impérative de substitution des vérifications de sécurité à l'aide de la méthode PermitOnly. Un objet PermissionState qui spécifie les ressources interface utilisateur auxquelles l'accès doit être accordé, est passé au constructeur UIPermission. Une fois la méthode PermitOnly appelée, le code et les appelants peuvent uniquement être utilisés pour accéder aux ressources interface utilisateur.
Option Explicit
Option Strict
Imports System
Imports System.Security.Permissions
Public Class MyClass1
Public Sub New()
End Sub
Public Sub ReadRegistry()
Dim MyPermission As New UIPermission(PermissionState.Unrestricted)
MyPermission.PermitOnly()
'Access a UI resource.
End Sub
End Class
using System;
using System.Security.Permissions;
public class MyClass {
public MyClass() {
}
public void ReadRegistry() {
UIPermission MyPermission = new UIPermission(PermissionState.Unrestricted);
MyPermission.PermitOnly();
//Access a UI resource.
}
}
Voir aussi
Concepts
Substitution des vérifications de sécurité
Référence
Utilisation de la méthode Deny