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 :

Etablir des changements dans l'active directory


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 54
    Points : 68
    Points
    68
    Par défaut Etablir des changements dans l'active directory
    Bonjour à tous,

    j'essaye pour le moment de modifier un password d'un compte AD. Malheureusement lorsque je désire modifier le password, j'ai une erreur HRESULT qui apparaît.

    Voici la partie du code qui permet de changer le password, il plante au niveau de l'invoke / CommitChange.

    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
     
                        try
                        {
                            DirectoryEntry ldap = new DirectoryEntry("LDAP://" + _domainBox, _accountBox.Text, _oldPasswordBox.Text);
                            DirectorySearcher searcher = new DirectorySearcher(ldap);
     
                            // Retrieves the logged user.
                            string[] tmp = _accountBox.Text.Split('\\');
                            searcher.Filter = "(SAMAccountName=" + tmp[tmp.Length - 1] + ")";
                            SearchResult result = searcher.FindOne();
                            DirectoryEntry entry = result.GetDirectoryEntry();
     
                            entry.Options.SecurityMasks = SecurityMasks.Dacl;
     
                            entry.Invoke("ChangePassword", new object[] { _oldPasswordBox.Text, _newPasswordBox.Text });
                            entry.CommitChanges();
                            _resultLabel.Style.Add(HtmlTextWriterStyle.Color, "blue");
                            _resultLabel.Text = "Change done.";
                        }
                        catch (DirectoryServicesCOMException COMEx)
                        {
                            _resultLabel.Style.Add(HtmlTextWriterStyle.Color, "red");
                            _resultLabel.Text = COMEx.Message;
                        }
                        catch (TargetInvocationException targetException)
                        {
                            _resultLabel.Style.Add(HtmlTextWriterStyle.Color, "red");
                            _resultLabel.Text = targetException.InnerException.Message;
                        }
    Et voilà l'exception que je retrouve:

    A constraint violation occurred. (Exception from HRESULT: 0x8007202F)
    Si qqn voit qqch que j'ai oublié, merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    http://support.microsoft.com/kb/286760/fr

    C'est donc au niveau de Invoke à mon avis. Il apprécie pas le tableau d'object. Essaye juste de passer le nouveau password. Etant normalement connecté à l'AD comme administrateur, tu ne dois pas avoir besoin de passer l'ancien mot de passe.

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 54
    Points : 68
    Points
    68
    Par défaut
    Dans les paramètres de la méthode Invoke, le deuxième argument est noté comme "params objet[] args", c'est étrange. J'ai essayer comme tu m'a dis de passer juste le nouveau password, mais ca ne fonctionne pas; cette fois-ci il me disait que je ne passais pas les bons arguments

  4. #4
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 54
    Points : 68
    Points
    68
    Par défaut
    Haha ba j'ai trouvé (c'est d'une débilité profonde), le responsable de l'AD n'avait pas permis que je change la password pour le compte test Voilà, dsl du dérangement pour rien mdr

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/11/2013, 10h40
  2. Réponses: 1
    Dernier message: 20/05/2009, 17h33
  3. Affichage des données d'un activ Directory
    Par PrinceMaster77 dans le forum ASP
    Réponses: 6
    Dernier message: 16/12/2008, 16h35
  4. [POO] Créer un user dans une Active Directory (LDAP)
    Par Invité dans le forum Langage
    Réponses: 15
    Dernier message: 17/06/2006, 00h46
  5. Y a-t-il eu des changements dans les rangs du forum ?
    Par pepper18 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 12/06/2006, 15h52

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