Maison >développement back-end >C++ >Comment puis-je récupérer des informations utilisateur à partir d'Active Directory à l'aide de PrincipalSearcher ?

Comment puis-je récupérer des informations utilisateur à partir d'Active Directory à l'aide de PrincipalSearcher ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-06 13:30:41867parcourir

How Can I Retrieve User Information from Active Directory Using PrincipalSearcher?

Récupération des informations utilisateur à partir d'Active Directory à l'aide de PrincipalSearcher

Si vous êtes nouveau dans Active Directory, il est crucial de comprendre sa structure de données hiérarchique et Capacités d'interrogation LDAP. Pour récupérer une liste d'utilisateurs, la classe PrincipalSearcher dans System.DirectoryServices.AccountManagement propose une approche intuitive.

using (var context = new PrincipalContext(ContextType.Domain, "yourdomain.com"))
établit une connexion au domaine spécifié.

en utilisant (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
crée un objet de recherche pour trouver les principaux utilisateurs.

Dans la boucle FindAll(), l'objet DirectoryEntry associé à chaque résultat est obtenu pour accéder à des propriétés telles que :

  • givenName : Prénom
  • sn : Nom de famille Name
  • samAccountName : nom de connexion de l'utilisateur avant Windows 2000
  • userPrincipalName : nom de connexion utilisé après Windows 2000

L'extrait de code ci-dessous fournit un exemple de cette approche :

using (var context = new PrincipalContext(ContextType.Domain, "yourdomain.com"))
{
    using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
    {
        foreach (var result in searcher.FindAll())
        {
            DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
            Console.WriteLine("First Name: " + de.Properties["givenName"].Value);
            Console.WriteLine("Last Name : " + de.Properties["sn"].Value);
            Console.WriteLine("SAM account name   : " + de.Properties["samAccountName"].Value);
            Console.WriteLine("User principal name: " + de.Properties["userPrincipalName"].Value);
            Console.WriteLine();
        }
    }
}
Console.ReadLine();

Cette solution récupère efficacement les informations utilisateur souhaitées depuis Active Annuaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn