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#

  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 : 39
    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 : 39
    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 : 39
    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();

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 82
    Par défaut
    Et as-tu essayé en passant par les classes de .NET proprement dit ?
    Pour ma part, ce que je fais, c'est que j'ai configuré l'authentification pour qu'elle se fasse dans l'AD et ensuite, tu peux faire tout simplement un MembershipUser.ChangePassword(oldPassword, newPassword)

    ça serait sans doute plus simple pour ce que tu as besoin de faire non ?

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161

Discussions similaires

  1. Changer un mot de passe
    Par kabikou dans le forum Access
    Réponses: 15
    Dernier message: 16/09/2005, 21h56
  2. [IB] Autoriser 1 user à changer son mot de passe
    Par qi130 dans le forum InterBase
    Réponses: 7
    Dernier message: 01/02/2005, 15h09
  3. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 12h25
  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, 14h56
  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, 10h45

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