none
Afficher une liste de user active directory RRS feed

  • Question

  • Bonjour je souhaiterais afficher la liste des user active directory d'un groupe en particulier

     

    J'ai donc ecrit le code suivant

     

    DirectoryEntry LDAP_SDG = new DirectoryEntry("LDAP://CN=MONGROUPE,OU=*****,DC=***,DC=***,DC=*****", "******", "*******");
          DirectorySearcher SEARCHER = new DirectorySearcher(LDAP_SDG); //on instancie un objet recherche
          SEARCHER.SizeLimit = 50000; // on etant la limit de la recherche a 50000 objects
          SEARCHER.PageSize = 50000;
            //SEARCHER.Filter = "(objectCategory=group)"; // on filtre sur les groupes
    
          SearchResultCollection MES_USERS = SEARCHER.FindAll();
    
          foreach (SearchResult results in MES_USERS)
          {
            DirectoryEntry USER = results.GetDirectoryEntry();
            listBox_User.Items.Add(USER.Username);      
    
           
    }
    
    

    Cela fonctionne mais cela m'affiche le nom de logon.

    Je souhaiterais plutot recupérer les champs prénom et nom

     

    J'ai donc ajouté ce code afin d'essayer de toruvé les diffrente property d'un user

     

     foreach (PropertyValueCollection property in USER.Properties)
            {
              listBox_User.Items.Add(property.PropertyName + "   " + property.Value);
            }
    
    

    Mais cela ne m'affiche que les property du groupe dans lequel se trouve ce user.

     

    Je ne parvien pas a "travailler sur l'object user en particulier)

     

    Comment puis procéder. 

     

     

    Merci d'avance

     

     

    jeudi 7 octobre 2010 12:08

Réponses

  • Bonjour,

     

    Avant tout, pour la récupération des users, je vous conseille de faire un filtre sur cette "population". (a la place du filtre sur les groupes qui est commenté)

    SEARCHER.Filter = "(&(objectClass=user)(objectCategory=person))"
    ;

    Vous pourrez ensuite récupérer les propriétés qui vous intéressent comme suit:

    USER.InvokeGet("givenName"
    ).ToString(); //Prénom
    USER.InvokeGet("SN"
    ).ToString(); //Nom

    ATTENTION : il me semble que le nom de ces propriétés n'est pas forcément stable selon les versions de AD... et puis on peut toujours en ajouter/[enlever?]....

    Cordialement,


    Kind regards, Sebastien G. - Axiomtek Deutschland GmbH
    • Marqué comme réponse Alex Petrescu dimanche 17 octobre 2010 09:35
    dimanche 10 octobre 2010 23:19

Toutes les réponses