Partager via


Procédure : créer un objet WindowsPrincipal

Notes

Cet article s’applique à Windows.

Pour plus d’informations sur ASP.NET Core, consultez Sécurité ASP.NET Core.

Il existe deux façons de créer un objet WindowsPrincipal, selon que le code doit effectuer une ou plusieurs validations basées sur les rôles.

Si le code doit exécuter plusieurs validations basées sur les rôles, la première des procédures suivantes produira moins de surcharge. Si le code ne doit exécuter qu’une seule validation basée sur les rôles, vous pouvez créer un objet WindowsPrincipal à l’aide de la deuxième procédure ci-dessous.

Pour créer un objet WindowsPrincipal pour une validation répétée

  1. Appelez la méthode SetPrincipalPolicy sur l'objet AppDomain qui est retourné par la propriété statique AppDomain.CurrentDomain, en passant à la méthode une valeur d'énumération PrincipalPolicy qui indique la nouvelle stratégie. Les valeurs prises en charge sont NoPrincipal, UnauthenticatedPrincipal et WindowsPrincipal. Le code suivant illustre cet appel de méthode.

    AppDomain.CurrentDomain.SetPrincipalPolicy(  
        PrincipalPolicy.WindowsPrincipal);  
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _  
        PrincipalPolicy.WindowsPrincipal)  
    
  2. Une fois la stratégie définie, utilisez la propriété statique Thread.CurrentPrincipal pour récupérer le principal qui encapsule l'utilisateur Windows actuel. Étant donné que le type de retour de la propriété est IPrincipal, vous devez caster le résultat vers un type WindowsPrincipal. Le code suivant initialise un nouvel objet WindowsPrincipal vers la valeur du principal associé au thread actuel.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;  
    
    Dim myPrincipal As WindowsPrincipal = _  
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. Quand l'objet principal a été créé, vous pouvez utiliser plusieurs méthodes pour le valider.

Pour créer un objet WindowsPrincipal pour une validation unique

  1. Initialisez un nouvel objet WindowsIdentity en appelant la méthode statique WindowsIdentity.GetCurrent, qui interroge le compte Windows actuel et place des informations sur ce compte dans l'objet d'identité récemment créé. Le code suivant crée un nouvel objet WindowsIdentity et l'initialise vers l'utilisateur authentifié actuel.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();  
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()  
    
  2. Créez un objet WindowsPrincipal et passez-lui la valeur de l'objet WindowsIdentity créé à l'étape précédente.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);  
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)  
    
  3. Quand l'objet principal a été créé, vous pouvez utiliser plusieurs méthodes pour le valider.

Voir aussi