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

ASP.NET Discussion :

Active Directory Impossible de définir le mot de passe d'un utilisateur


Sujet :

ASP.NET

  1. #1
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut Active Directory Impossible de définir le mot de passe d'un utilisateur
    Bonjour,

    Je travaille sur la création d'une page permettant de créer des utilisateurs dans l'AD. J'arrive à me connecter et à créer l'utilisateur, mais au moment d'invoker la méthode "SetPassword", j'obtiens l'erreur suivante :

    Main Exception: Exception has been thrown by the target of an invocation.

    Inner Exception: The filename, directory name, or volume label syntax is incorrect. (Exception from HRESULT: 0x8007007B)":null
    Voici mon code pour créer l'utilisateur :

    Code : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    public bool CreateUserAccount(string newUserName, string newUserPassword, string newUserLastName, string newUserFirstName, string newUserCompany, string newUserEmailAddress, string newUserDisplayName)
            {
                bool bCreationStatus = false;
                try
                {
                    string connectionPrefix = this.LDAPPath;
                    DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix, this.LDAPUser, this.LDAPPassword);
     
                    DirectoryEntry newUser = dirEntry.Children.Add("CN=" + newUserName, "user");
     
                    // Feeds new user properties
                    newUser.Properties[ADProperties.LASTNAME].Value = newUserLastName;
                    newUser.CommitChanges();
     
                    newUser.Properties[ADProperties.FIRSTNAME].Value = newUserFirstName;
                    newUser.CommitChanges();
     
                    newUser.Properties[ADProperties.DISPLAYNAME].Value = newUserDisplayName;
                    newUser.CommitChanges();
     
                    newUser.Properties[ADProperties.LOGINNAME].Value = newUserName;
                    newUser.CommitChanges();
     
                    newUser.Properties[ADProperties.COMPANY].Value = newUserCompany;
                    newUser.CommitChanges();
     
                    newUser.Properties[ADProperties.EMAILADDRESS].Value = newUserEmailAddress;
                    newUser.CommitChanges();
     
                    // oGUID = newUser.Guid.ToString();
     
                    newUser.Invoke("SetPassword", new object[] { newUserPassword });
                    newUser.CommitChanges();
     
                    this.SetAccountExpiresDate(newUser, DateTime.Now.AddMonths(+3));
                    newUser.CommitChanges();
     
                    dirEntry.Close();
                    newUser.Close();
     
                    bCreationStatus = true;
                }
                catch (System.DirectoryServices.DirectoryServicesCOMException E)
                {
                    bCreationStatus = false;
                }
                return bCreationStatus;
            }
    L'erreur survient à cet endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    newUser.Invoke("SetPassword", new object[] { newUserPassword });
    J'ai essayé d'impersonifier le code à cet endroit, mais ça ne change rien.

    J'ai aussi pensé que le problème venait de la complexité de mon password. Je le génère en utilisant une classe spécifique. Ensuite je teste le password afin de savoir s'il est suffisamment complexe ou non. S'il ne l'est pas, on en génère un nouveau et on recommence le test. S'il passe le test, alors on l'attribue à l'utilisateur. Le test est une expression régulière, et les passwords générés répondent toujours aux critères de complexité de l'AD... Donc le problème ne vient à priori pas de là.

    Avez-vous une idée ?

    Merci par avance pour votre aide.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ok j'ai trouvé la solution... Il suffisait de supprimer le port du chemin LDAP utilisé pour la création du nouvel utilisateur...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/02/2016, 14h10
  2. Réponses: 0
    Dernier message: 05/03/2010, 10h03
  3. Définir un mot de passe Access
    Par Chatbour dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 10/12/2006, 23h41
  4. Impossible de saisir le mot de passe de session
    Par GD91 dans le forum Windows XP
    Réponses: 4
    Dernier message: 20/10/2006, 19h22
  5. [Linux] Définir le mot de passe root
    Par webrider dans le forum Installation
    Réponses: 4
    Dernier message: 11/08/2006, 18h13

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