Partager via


Comment : créer un objet WindowsPrincipal

Mise à jour : novembre 2007

Il existe deux méthodes pour créer un objet WindowsPrincipal, selon que le code doit exécuter une validation basée sur les rôles à une seule reprise ou de manière répétée.

Si le code doit exécuter une validation basée sur les rôles de manière répétée, la première des procédures suivantes produit moins de charge mémoire. Lorsque le code doit exécuter une validation basée sur les rôles à une seule reprise, vous pouvez créer un objet WindowsPrincipal en suivant la deuxième les procédures suivantes.

Pour créer un objet WindowsPrincipal en vue d'une validation répétée

  1. Appelez la méthode SetPrincipalPolicy sur l'objet AppDomain qui est retourné par la propriété AppDomain.CurrentDomain statique, en passant à la méthode une valeur d'énumération PrincipalPolicy qui indique ce que doit être la nouvelle stratégie. Les valeurs prises en charge sont NoPrincipal, UnauthenticatedPrincipal et WindowsPrincipal. L'exemple de code suivant montre 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é Thread.CurrentPrincipal pour récupérer l'entité de sécurité qui encapsule l'utilisateur Windows en cours. Étant donné que le type de retour de la propriété est IPrincipal, vous devez effectuer un cast du résultat en un type WindowsPrincipal. Le code suivant initialise un nouvel objet WindowsPrincipal en lui donnant la valeur de l'entité de sécurité associée au thread en cours.

    WindowsPrincipal MyPrincipal = 
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim MyPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal) 
    

Pour créer un objet WindowsPrincipal pour une seule validation

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

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

    WindowsPrincipal MyPrincipal = new WindowsPrincipal(MyIdentity);
    
    Dim MyPrincipal As New WindowsPrincipal(MyIdentity)
    
  3. Une fois l'objet Principal créé, vous pouvez le valider à l'aide de diverses méthodes. Pour plus d'informations, consultez Contrôles de sécurité basés sur les rôles.

Voir aussi

Concepts

Objets Principal et Identity