Partage
  • Partager sur Facebook
  • Partager sur Twitter

C# - question requêtes LDAP sur Active Directory

ajouter un utilisateur dans un groupe en C#

Sujet résolu
    23 février 2022 à 7:29:23

    Bonjour,

    Je souhaite créer un outil en C# permettant de faire quelques actions simples sur des objets dans un Active Directory. J'ai réussi à créer un utilisateur et le déplacer où je souhaite, mais je n'arrive pas à l'ajouter dans des groupes. Le problème doit être bête, mais je ne vois pas ce qui manque.

    Voici mon code :

    try
    {                
         System.DirectoryServices.DirectoryEntry dirEntry = new System.DirectoryServices.DirectoryEntry("LDAP://AD.domaine.com/test", login_admin, password_admin);
         if (dirEntry != null)
              {
                   dirEntry.Properties["member"].Add(common_name);
                   dirEntry.CommitChanges();
                   dirEntry.Close();
                   appendConsole("SUCCESS : User added to group : " + "test", 3);
              }
         else
              {
                   appendConsole("ERROR : group not found", 2);
              }
    }
    catch (System.DirectoryServices.DirectoryServicesCOMException E)
    {
         appendConsole("ERROR : " + E.Message.ToString(), 2);
    }



    Sur la console j'obtiens l'erreur suivante : "Une syntaxe DN non valide a été spécifiée". Donc on n'est pas tombé dans le else "group not found" mais dans le catch, je ne comprends pas pourquoi. Je précise que "test" est le CN d'un groupe actuellement vide créé à cet effet. Quelqu'un aurait une piste ?

    Sur la variable "common_name", donc celle du user, j'ai tenté "CN=test user" et "test user", aucun des deux ne fonctionne.

    Merci,

    Pascal

    -
    Edité par Pascal.B 23 février 2022 à 7:36:48

    • Partager sur Facebook
    • Partager sur Twitter
    Ideas worth spreading
      23 février 2022 à 11:42:52

      Je pencherai sur une erreur sur la ligne 3 plutôt qu'en ligne 6. utilise le débogueur pour voir à quel moment tu passes dans le catch.
      • Partager sur Facebook
      • Partager sur Twitter
        23 février 2022 à 12:18:53

        Bonjour umfred,

        Merci pour votre réponse. Effectivement l'erreur se produit bien sur la ligne 3, mais je ne comprends pas ce qui manque. Voici une capture de la console avec un point d'arrêt :

        J'ai suivi l'exemple présent à ce lien pour créer ma requête : Howto: (Almost) Everything In Active Directory via C# - CodeProject

        Sur l'éditeur d'attribut j'ai bien "test" comme cn sur mon groupe. J'ai placé le groupe à la racine du domaine, mais même résultat.

        • Partager sur Facebook
        • Partager sur Twitter
        Ideas worth spreading
          23 février 2022 à 19:15:29

          Tu as regardé ce que contenait dirEntry.Properties ? (y-a-t-il "member"?) le path, c'est de la forme "LDAP://CN=test,DC=<nomdomain>,DC=<extension>" ou "LDAP://<serveur>:<port>/CN=test" ?

          et "test" est bien un groupe de sécurité ? 

          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2022 à 13:29:24

            Bonjour,

            Merci pour votre retour et désolé pour la réponse tardive.

            Après de nombreuses tentatives j'ai fini par lui donner le bon format de données en entrée. C'était bien dirEntry.Properties qui n'était pas valide.

            • Partager sur Facebook
            • Partager sur Twitter
            Ideas worth spreading

            C# - question requêtes LDAP sur Active Directory

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown