Maison >développement back-end >C++ >Comment puis-je récupérer des données utilisateur (nom d'utilisateur, prénom, nom de famille) à partir d'Active Directory à l'aide de C# ?

Comment puis-je récupérer des données utilisateur (nom d'utilisateur, prénom, nom de famille) à partir d'Active Directory à l'aide de C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-06 13:11:40677parcourir

How Can I Retrieve User Data (Username, First Name, Last Name) from Active Directory Using C#?

Récupérer les données utilisateur d'Active Directory

Introduction :
Accès aux informations utilisateur d'Active Directory (AD) est une tâche essentielle dans de nombreux environnements informatiques. Ce guide fournit une solution complète pour obtenir une liste d'utilisateurs, y compris leurs noms d'utilisateur, prénoms et noms de famille.

Contexte d'Active Directory :
Active Directory est un LDAP ( Lightweight Directory Access Protocol) qui organise les objets de manière hiérarchique, à la manière d'un système de fichiers. Chaque objet possède un nom distinctif (DN) qui l'identifie de manière unique dans l'annuaire.

Interrogation d'Active Directory à l'aide de LDAP :
Il existe plusieurs méthodes pour interroger AD dans .NET. Une option pratique consiste à utiliser PrincipalSearcher à partir de l'espace de noms System.DirectoryServices.AccountManagement.

Exemple de requête :
Le code suivant illustre une requête qui récupère l'utilisateur nécessaire information :

using System.DirectoryServices.AccountManagement;

PrincipalContext context = new PrincipalContext(ContextType.Domain, "yourdomain.com");
PrincipalSearcher 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();
}

Explication :

  • Nom distinctif : Le nom distinctif de l'objet AD peut être obtenu en utilisant de. Propriétés["distinguishedName"].Value.
  • Prénom : L'attribut gaveName fournit le prénom de l'utilisateur.
  • Nom de famille : L'attribut sn représente le nom de famille de l'utilisateur.
  • Nom de connexion de l'utilisateur : AD a deux noms de connexion : samAccountName et userPrincipalName. samAccountName est le nom de connexion de l'utilisateur avant Windows 2000, tandis que userPrincipalName est généralement utilisé 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