Maison >développement back-end >C++ >Comment puis-je récupérer des informations utilisateur (nom et nom d'utilisateur) à partir d'Active Directory ?

Comment puis-je récupérer des informations utilisateur (nom et nom d'utilisateur) à partir d'Active Directory ?

DDD
DDDoriginal
2025-01-06 13:22:41659parcourir

How Can I Retrieve User Information (Name and Username) from Active Directory?

Récupération des informations utilisateur d'Active Directory

Pour rassembler une liste d'utilisateurs d'Active Directory avec leurs noms d'utilisateur, prénom et nom correspondants, envisagez l'approche suivante :

Comprendre la structure d'Active Directory

Active L'annuaire organise les données de manière hiérarchique, avec des conteneurs et des objets identifiés par des noms distinctifs. Comprendre cette structure est crucial avant d'effectuer des requêtes.

Requêtes LDAP et PrincipalSearcher

Active Directory est un serveur LDAP et les requêtes LDAP peuvent être utilisées pour récupérer des informations. Pour les requêtes spécifiques à l'utilisateur, la classe PrincipalSearcher de System.DirectoryServices.AccountManagement est recommandée.

Exemple de code pour la récupération

L'exemple de code suivant montre comment récupérer les informations utilisateur en utilisant PrincipalSearcher :

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();
        }
    }
}

Attribut Considérations

Notez que "givenName" correspond au prénom, tandis que "sn" représente le nom de famille. En ce qui concerne les noms d'utilisateur, Active Directory stocke deux noms de connexion : "samAccountName" (avant Windows 2000) et "userPrincipalName" (après Windows 2000).

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