Hello !

Bon, vu mon code, j'ai l'impression de ne pas utiliser les bonnes classes ou les bons objets.

Voici ce que je dois réaliser :

Recherche LDAP -> Retourne les propriétés. -> Possibilité d'aller les consulter Key/Value une par une, comme je le souhaite.

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
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
50
51
52
53
54
// Classe LDAP
// Méthode de listage : 

// (...)
IDictionaryEnumerator dir = null;
List<IDictionaryEnumerator> listDir = new List<IDictionaryEnumerator>();

                    DirectoryEntry entry = result.GetDirectoryEntry();

                    dir = entry.Properties.GetEnumerator();
                    listDir.Add(dir);
// (...)
return listDir;


///////////////////////////////////

// Classe Form1.cs

// (...)

private void ListerPCs()
        {
            try
            {
                ListViewItem item = null;
                List<IDictionaryEnumerator> listDir = new List<IDictionaryEnumerator>();                

                listDir = engine.ldap.listAllComputer(); // ---> ici je récupère ma liste depuis ma classe LDAP ci dessus...

                foreach (IDictionaryEnumerator dir in listDir)
                {
                    String cn = null;
                    String os = null;
                    String osVer = null;
                    String osSP = null;
                    String Desc = null;
                    while (dir.MoveNext())
                    {
                        if (dir.Key.ToString().ToLower().Equals("cn"))
                        {
                            IDictionaryEnumerator val = (IDictionaryEnumerator)dir.Value;
                            while (val.MoveNext())
                            {
                                if(val.Key.ToString().ToLower().Equals("value"))
                                    cn = dir.Value.ToString();
                            } 
                        }                        
                    }
                    item = new ListViewItem(new String[] { cn, os, osVer, osSP, Desc });
                    lviewInfo.Items.Add(item);
                }
            }
Le code en GRAS me parait un peu long pour l'utilisation que j'en fais.

Je sais exactement quels champs je dois récupérer :
Les clés suivantes :
cn
operatingSystem
operatingSystemVersion
operatingSystemServicePack
Description


Existe-t-il un moyen de simplifier mes lignes de code ? Peut-être en utilisant autre chose qu'un IDictionnaryEnumerator par exemple, je ne sais pas ...

Pouvez-vous me guider ?

MErci.