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 :
Le code en GRAS me parait un peu long pour l'utilisation que j'en fais.
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); } }
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.
Partager