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 55 56 57 58 59 60 61 62 63
|
Public Function Search_User_Informations(ByVal AD_Username As String, ByVal AD_Propriete As String) As String
Try
Dim mydirentry As New DirectoryEntry("LDAP://rootDSE")
Dim searcher As New DirectorySearcher("LDAP://rootDSE")
'Au départ, la valeur est vide
Dim StrRetADInfo As String = ""
'Spécifier la propriété Ã* rechercher. Si plusieurs, faire d'autres .add()
searcher.PropertiesToLoad.Add(AD_Propriete)
'Spécifier le filtre du searcher, la condition si tu veux.
searcher.Filter = "(anr=" & AD_Username & ")"
'Déclarer la variable qui va contenir les résultats, qui sont une collection
Dim results As SearchResultCollection
'On dit a notre searcher de trouver tout ce qui concorde avec propertiesToLoad et Filter.
'Stockage de la collection renvoyée par le searcher dans results
results = searcher.FindAll()
'Exploration de la collection avec un for each
'Cela permet d'avoir accès aux propriétés des membres de la collection sans devoir travailler avec les indices du tableau
For Each result As SearchResult In results
'result représente un item dans la collection qu'est results
'chaque item de la collection a un attribut Properties, qui est un tableau avec les
'résultat de la recherche.On utilise la variable AD_Propriete pour que ce soit dynamique.
'Imagine que ca donne :(properties(profilePath)(0) lorsque AD_Propriete vaut "profilePath".
'C'est donc un tableau Ã* deux dimensions. L'axe des x est représenté
'par les propriété recherchée, et l'axe des y sont les infos relatives Ã* chaque propriété
StrRetADInfo = (result.Properties(AD_Propriete)(0)).ToString
Next
'Retour de la valeur trouvée
Return StrRetADInfo
Catch ex As Exception
'Si aucune valeur est retournée, on attribut une valeur
StrErreur = ""
Return StrErreur
End Try
End Function
...
Private Sub Button_Load_Informations_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Load_Informations.Click
Dim SAMAccountName As String = Search_User_Informations(TextBox_User_UserId.Text, "SAMAccountName")
If SAMAccountName <> "" Then
For Each MemberOf_Results As Object In Search_User_Informations(TextBox_User_UserId.Text, "memberOf")
TextBox1.Text = Replace(Split(Search_User_Informations(TextBox_User_UserId.Text, "memberOf"), ",")(0), "CN=", "", 1, -1, 1)
Next
Else
TextBox1.Text = ""
End If |
Partager