Si vous êtes sur .NET 3.5 et, vous pouvez également consulter la System.DirectoryServices.AccountManagement
(S.DS.AM) espace de noms.
Lisez-tout ici:
Fondamentalement, vous pouvez définir un contexte de domaine et de trouver facilement les utilisateurs et/ou groupes AD:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
}
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
// if found....
if (group != null)
{
// iterate over members
foreach (Principal p in group.GetMembers())
{
Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName);
// do whatever you need to do to those members
}
}
Le nouveau S.DS.AM rend vraiment facile de jouer wi les utilisateurs et les groupes dans AD! Beaucoup plus facile que l'approche DirectoryEntry
précédente ...
Cela semble génial, pourquoi je ne l'ai pas trouvé plus tôt!? – hoetz
@Malkier google mon ami, il est notre grand ami – Frederiek
Après un rapide coup d'oeil, il a une limitation, cependant: Vous ne pouvez créer des requêtes que pour un type d'objet, c'est-à-dire un utilisateur. Rechercher sur les utilisateurs OU les groupes OU les ordinateurs semble impossible, voyons si nous pouvons pirater cela ... – hoetz