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 :

[C#/AD] Suppression d'un user dans un groupe


Sujet :

C#

  1. #1
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut [C#/AD] Suppression d'un user dans un groupe
    Voilà j'ai une form qui liste tous les utilisateurs d'un groupe dans une listeview j'ai un bouton supprimez qui doit supprimer du groupe l'utilisateur selectionnez dans la listview mais il me sort une exception avec ce code :

    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
     private void button3_Click(object sender, EventArgs e)
            {
                if (listView1.SelectedItems.Count != 0)
                {
                    DirectoryEntry ldap_group = new DirectoryEntry("GC://" + cheminldap_groupe, new_conec.login, new_conec.pwd);
                    DirectoryEntry ldap_user = new DirectoryEntry("GC://" + cheminldap_user, new_conec.login, new_conec.pwd);
     
                    try
                    {
                        ldap_group.Invoke("remove", new object[] { cheminldap_user });
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
    L'exception est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Une exception a été levé par la cible d'un appel
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    ldap_group.SubmitChanges() après le Invoke ?


    PS: L'utilisateur est-il connecté au moment où tu veux le supprimer ?

  3. #3
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    Non l'utilisateur n'est pas connecté quand je veus le supprimer

    Dans le tuto il mette pas ldap_group.SubmitChanges() ( ce qui ma suppris je dois le dire )
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Dans le tuto (http://webman.developpez.com/article...isateurs#L3.3), pour la suppression, il passe par Children.Remove et pas Invoke.....

  5. #5
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    Ba dans le tuto que tu ma filer il passe bien par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Utilisation de la méthode ADSI "Add" pour ajouter un utilisateur à un groupe
                    monGroupe.Invoke("Remove", New Object() {monUtilisateur.Path})
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Dans le commentaire, il parle de Add et dans la commande, on appelle Remove

    Sur le lien: 3.3. Suppression d'objets comptes d'utilisateurs dans l'annuaire

    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
     
    Public Function deleteUser(ByVal cheminLdapParent As String, _
    	                           ByVal cheminLdapObjetAsupprimer As String, _
    	                           ByVal monUsername As String, _
    	                           ByVal monPassword As String) As Boolean
     
            ' Noeud parent de l'objet à supprimer
            Dim entryParent As New DirectoryServices.DirectoryEntry("LDAP://" & cheminLdapParent, _
    		                       monUsername, monPassword, AuthenticationTypes.Secure)
     
            ' Objet à supprimer
            Dim entryAsupprimer As New DirectoryServices.DirectoryEntry("LDAP://" & cheminLdapObjetAsupprimer, _
    		                       monUsername, monPassword, AuthenticationTypes.Secure)
     
            Try
     
                ' Suppression de l'objet
                entryParent.Children.Remove(entryAsupprimer)
                Return True
     
            Catch ex As Exception
     
                MessageBox.Show(ex.Message)
                Return False
     
            Finally
     
                ' Fermeture des DirectoryEntry
                entryParent.Close()
                entryAsupprimer.Close()
     
            End Try
     
        End Function

  7. #7
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    Il me lève une exception du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cet objet ne se trouve pas sur le serveur
    Est-tu sûr que les utilisateurs on pour pêre les groupes puisqu'avec ta methode on suprime un enfant (children) du groupe ... Peut être y a t'il un problème a ce niveau là.

    Je suis sûr que les 2 objets existes puisque j'arrive à récuperrer leur samaacountname
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

  8. #8
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    le children.remove fonctionne comment ? Je me demande si celà ne va pas supprimer completement l'user de l'AD
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Luffy49
    le children.remove fonctionne comment ? Je me demande si celà ne va pas supprimer completement l'user de l'AD
    La fonction s'appelle deleteUser donc je suppose que oui, cela le supprime completement

  10. #10
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    Oui donc celà ne convient pas, je veus simplement supprimer l'utilisateur du groupe.
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  12. #12
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    En fait j'ai un exception qui se lève

    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
    private void button3_Click(object sender, EventArgs e)
            {
                if (listView1.SelectedItems.Count != 0)
                {
                    DirectoryEntry ldap_group = new DirectoryEntry("GC://" + cheminldap_groupe, new_conec.login, new_conec.pwd);
                    try
                    {
                        //Récupération et suppression de chaque item selectionner
                        ListView.SelectedListViewItemCollection list_item = listView1.SelectedItems;
                        foreach (ListViewItem item in list_item)
                        {
                            if (item.SubItems.Count != 1)
                            {
                                ldap_group.Properties["member"].Remove(item.SubItems[1].Text); 
     
                            }
     
                        }
                        ldap_group.CommitChanges();
                    }
    Lors du commitChanges il me dit que le serveur ne veus pas effectuer là requète
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

Discussions similaires

  1. [PowerShell] Ajout user dans un groupe en fonction d'un booléen
    Par PoP_NicoW dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 02/12/2013, 19h04
  2. Réponses: 1
    Dernier message: 02/02/2009, 16h58
  3. Ajout de users dans un groupe
    Par neuneu1 dans le forum VBScript
    Réponses: 13
    Dernier message: 19/02/2008, 18h11
  4. Réponses: 4
    Dernier message: 22/12/2003, 11h12
  5. Réponses: 14
    Dernier message: 01/12/2003, 17h47

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