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 :

Changer le mot de passe AD ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut Changer le mot de passe AD ?
    Bonjour à tous,

    comme le titre l'indique, j'aimerai changer le mot de passe AD via du code C#. J'ai beau faire toutes les recherches possible sur le net, j'ai essayé tout ce que j'ai trouvé, et ca ne marche pas. Je me dis que j'oublie peut etre quelque chose, donc si quelqu'un pouvait y jeter un coup d'oeil, ca m'aiderait bien.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
               {
                    DirectoryEntry users = new DirectoryEntry(ConfigurationManager.ConnectionStrings["activeDirectory"].ConnectionString, "login", "password", AuthenticationTypes.Secure);
                    users.Invoke("ChangePassword", new object[] { password });
                    users.CommitChanges();
                    users.Close();
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex);
                }
    Et donc bien entendu, ca passe dans le catch avec ca comme message :
    "System.Runtime.InteropServices.COMException (0x80020006): Nom inconnu. (Exception de HRESULT : 0x80020006 (DISP_E_UNKNOWNNAME))" sur la ligne "users.Invoke("ChangePassword", new object[] { password });"

    La connexion à AD se fait bien, j'ai tester ce code, et ca marche bien, mais c'est le changement qui marche pas. A savoir que j'ai également essayé avec SetPassword, ou en mettant AncienPassword,Password dans le new Object, mais rien n'y fait, il n'y a rien qui passe. Si quelqu'un pouvait donc m'aider !

    Ah oui, la variable password existe bien et n'est pas nulle.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Quand tu as ton DirectoryEntry il faut rechercher dans le Ldap l'utilisateur à qui tu veux changer le mot de passe non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Qu'est ce que ca pourrait etre comme erreur, car ce code est valide, enfin je pense, vu qu'il ne me fait pas d'erreur. Comment je pourrais le tester ?

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ta premiere ligne te sert juste à te connectere à ton AD, ensuite il faut le parcourir pour rechercher l'utilisateur à modifier une ligne de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    users.Ldap.Children.Find("CN=Users").Children.Find("CN=utilisateur1");

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    ah ok, je vais essayer ca. Il y aurait juste cette ligne à rajouter avant de faire le SetPassword pour que ca marche alors ?

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Monico Voir le message
    ah ok, je vais essayer ca. Il y aurait juste cette ligne à rajouter avant de faire le SetPassword pour que ca marche alors ?
    Ben un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DirectoryEntry userToChange = users.Ldap.Find...
    userToChange.Invoke("ChangePassword", new object[] { password });
    userToChange.CommitChanges();
    userToChange.Close();

Discussions similaires

  1. Changer un mot de passe
    Par kabikou dans le forum Access
    Réponses: 15
    Dernier message: 16/09/2005, 20h56
  2. [IB] Autoriser 1 user à changer son mot de passe
    Par qi130 dans le forum InterBase
    Réponses: 7
    Dernier message: 01/02/2005, 14h09
  3. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 11h25
  4. changer le mot de passe d'un utilisateur
    Par Rdjedidene dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 13h56
  5. [VB6] [ADO] [Access] Changer le mot de passe
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/03/2003, 09h45

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