IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Active Directory et c#


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Par défaut Active Directory et c#
    Bonjour à tous...
    j'ai deux questions simple mais importantes

    où puis-je trouver une énumération des properties pour un user dans l'active directory.(pour c#)

    Pour la deuxième, je bute depuis 2 jours, je n'arrive pas à créer un password pour un user que je crée. Une exception est chaque fois lancée

    voici le code utilisé
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    try
    {
          string ldapPath = "LDAP://" + ((containerPath!="")?containerPath+",":"")+ "DC=domain,DC=com";
          DirectoryEntry entry = new DirectoryEntry(ldapPath, adminName, adminPassword, AuthenticationTypes.Secure);
          DirectoryEntry newUser = entry.Children.Add("cn=" + loginToAdd, "User");
          newUser.Properties["SAMAccountName"].Add(loginToAdd);
          newUser.Properties["displayName"].Add("name to display");
          newUser.Properties["sn"].Add("User");
          newUser.Properties["givenName"].Add("Test");
          newUser.Properties["street"].Add("address user");
          newUser.Properties["UserPrincipalName"].Add(loginToAdd + "@domain.com");
          newUser.Properties["description"].Add("user insert Test");
          newUser.CommitChanges();
     
          //la ligne qui suit me lance une exception: an exception has been thrown by the target of an invocation
          newUser.Invoke("SetPassword", new object[] { "motdepasse" });
          newUser.Properties["userAccountControl"].Value = 512;
          newUser.CommitChanges();
    }
    catch (Exception ex)
    {
          Console.WriteLine("Error : " + ex.Message);
          Console.WriteLine("Stacks : " + ex.StackTrace);
          return false;
    }
    .... Si quelqu'un sait pourquoi il y a cette exception, je suis de toute ouïe et je le remercie d'avance

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    et c'est quoi l'exception?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Par défaut
    ça, il ne me le dit pas, il me dit juste que la method invoquée lance une exception ... moi ça ne m'aide pas

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    et après le commitchanges si tu essayes de récuperer ton user et de faire le setpassword est ce que tu as l'exception. ce serait crétin mais c'est peut etre ca le problème. mais ce serait étonnant.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Par défaut
    je viens juste d'essayer, mon user est bien créé, mais ça plante toujour au même endroit...
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    try
    {
          string ldapPath = "LDAP://" + ((containerPath!="")?containerPath+",":"")+ "DC=domain,DC=com";
          DirectoryEntry entry = new DirectoryEntry(ldapPath, adminName, adminPassword, AuthenticationTypes.Secure);
          DirectoryEntry newUser = entry.Children.Add("cn=" + loginToAdd, "User");
          newUser.Properties["SAMAccountName"].Add(loginToAdd);
          newUser.Properties["displayName"].Add("name to display");
          newUser.Properties["sn"].Add("User");
          newUser.Properties["givenName"].Add("Test");
          newUser.Properties["street"].Add("address user");
          newUser.Properties["UserPrincipalName"].Add(loginToAdd + "@domain.com");
          newUser.Properties["description"].Add("user insert Test");
          newUser.CommitChanges();
     
          DirectorySearcher searchedUser = new DirectorySearcher(entry);
          searchedUser.Filter = "SAMAccountName=" + loginToAdd;
          SearchResult result = searchedUser.FindOne();
          newUser = result.GetDirectoryEntry();
          newUser.Invoke("SetPassword", new object[1] {"motdepasse" });
          newUser.Properties["userAccountControl"].Value = 512;
          newUser.Properties["pwdLastSet"].Value = 0;
          newUser.CommitChanges();
          return true;
    }
    catch (Exception ex)
    {
              Console.WriteLine("Error : " + ex.Message);
              Console.WriteLine("Stacks : " + ex.StackTrace);
              return false;
    }

    donc au SetPassword...

    Du nouveau:
    j'ai réussi à aller voir le message d'erreur par un Exception.InnerException.Message
    ça donne ceci:
    "The Password doesn't meet the password policy requirements. check the minimum password length, password complexity and password history requirements"

    et donc mon problème est résolu... et j'ai appris quelque chose

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Active directory LDAP
    Par Gauden dans le forum Windows Forms
    Réponses: 9
    Dernier message: 02/05/2005, 13h57
  2. Package permettant d'interroger l'active directory
    Par gracouille dans le forum Modules
    Réponses: 5
    Dernier message: 18/08/2004, 10h59
  3. [AD]Mise en place de Active Directory
    Par guiguisi dans le forum Windows Serveur
    Réponses: 9
    Dernier message: 29/07/2004, 08h50
  4. Réponses: 4
    Dernier message: 17/05/2004, 09h57
  5. Active directory
    Par m.schar dans le forum Développement
    Réponses: 5
    Dernier message: 22/03/2004, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo