Ben er ook mee bezig (geweest), nu zijn de active directory beheerders hier niet zo snugger én gebruiken we een 3rd party metadirectory, dus erg vlotjes gaat het niet. Heb wel wat code voor je:
ASP.NET Visual Basic:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| <%
Response.Write "<h1>LDAP: MetaDirectory Test</h1>"
If Request.QueryString("u") <> "" Then
sSql = "SELECT "
If Request.QueryString("f16") = 1 Then
sSql = sSql & "telephoneNumber, "
End If
If Request.QueryString("f15") = 1 Then
sSql = sSql & "surnameLong, "
End If
If Request.QueryString("f14") = 1 Then
sSql = sSql & "ou, "
End If
If Request.QueryString("f13") = 1 Then
sSql = sSql & "objectClass, "
End If
If Request.QueryString("f12") = 1 Then
sSql = sSql & "o, "
End If
If Request.QueryString("f11") = 1 Then
sSql = sSql & "rfc822mailbox, "
End If
If Request.QueryString("f10") = 1 Then
sSql = sSql & "mail, "
End If
If Request.QueryString("f9") = 1 Then
sSql = sSql & "l, "
End If
If Request.QueryString("f8") = 1 Then
sSql = sSql & "roomNumber, "
End If
If Request.QueryString("f7") = 1 Then
sSql = sSql & "initials, "
End If
If Request.QueryString("f6") = 1 Then
sSql = sSql & "givenName, "
End If
If Request.QueryString("f5") = 1 Then
sSql = sSql & "gender, "
End If
If Request.QueryString("f4") = 1 Then
sSql = sSql & "employeeNumber, "
End If
If Request.QueryString("f3") = 1 Then
sSql = sSql & "departmentNumber, "
End If
If Request.QueryString("f2") = 1 Then
sSql = sSql & "c, "
End If
If Request.QueryString("f1") = 1 Then
sSql = sSql & "accountingCode, "
End If
sSql = sSql & "cn " & _
"FROM 'LDAP://ldap.server.nl:389/c=nl/o=bedrijfsnaam' " & _
"WHERE objectClass='*' AND employeenumber = " & Request.QueryString("u")
Set oConn = CreateObject("ADODB.Connection")
oConn.Provider = "ADSDSOObject"
'oConn.Properties("ADSI Flag")=ADS_FAST_BIND
oConn.Properties("Encrypt Password")=False
oConn.Properties("User ID")=""
oConn.Properties("Password")=""
oConn.Open "ADSI Provider"
Set oRs = Server.CreateObject("ADODB.RecordSet")
Response.Write "<pre>" & sSql & "</pre><br /><br />"
oRs.open sSql, oConn
Response.Write "<table border=""1"" cellpadding=""4"">"
For Each x In oRs.Fields
If IsArray(x.Name) = False And IsArray(x.Value) = False Then
Response.Write "<tr>" & _
"<td>" & x.Name & "</td>" & _
"<td>" & x.Value & " </td>" & _
"</tr>"
Else
Response.Write "<tr>" & _
"<td>" & x.Name & "</td>" & _
"<td>"
For Each y In x.Value
Response.Write y & " <br />"
Next
Response.Write "</td>" & _
"</tr>"
End If
Next
Response.Write "</table>" & _
"<a href=""" & Request.ServerVariables("SCRIPT_NAME") & """>terug</a>"
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
Else
Response.Write "<form method=""GET"">" & _
"<table>" & _
"<tr>" & _
"<td>Personeels nummer:</td>" & _
"<td><input type=""text"" size=""5"" name=""u"" /></td>" & _
"</tr><tr>" & _
"<td valign=""top"">Velden:</td>" & _
"<td>" & _
"<input type=""checkbox"" name=""f0"" value=""1"" checked disabled /> cn <br />" & _
"<input type=""checkbox"" name=""f1"" value=""1"" /> Kostenplaats <br />" & _
"<input type=""checkbox"" name=""f2"" value=""1"" /> Land <br />" & _
"<input type=""checkbox"" name=""f3"" value=""1"" /> Afdeling <br />" & _
"<input type=""checkbox"" name=""f4"" value=""1"" /> Personeelsnummer <br />" & _
"<input type=""checkbox"" name=""f5"" value=""1"" /> Geslacht <br />" & _
"<input type=""checkbox"" name=""f6"" value=""1"" /> Voornaam <br />" & _
"<input type=""checkbox"" name=""f7"" value=""1"" /> Voorletters <br />" & _
"<input type=""checkbox"" name=""f8"" value=""1"" /> Locatie <br />" & _
"<input type=""checkbox"" name=""f9"" value=""1"" /> Vestiging <br />" & _
"<input type=""checkbox"" name=""f10"" value=""1"" /> Mail <br />" & _
"<input type=""checkbox"" name=""f11"" value=""1"" /> Mailbox <br />" & _
"<input type=""checkbox"" name=""f12"" value=""1"" /> Organisatie <br />" & _
"<input type=""checkbox"" name=""f13"" value=""1"" /> Objectklasse <br />" & _
"<input type=""checkbox"" name=""f14"" value=""1"" /> Afdeling <br />" & _
"<input type=""checkbox"" name=""f15"" value=""1"" /> Achternaam <br />" & _
"<input type=""checkbox"" name=""f16"" value=""1"" /> Telefoon <br />" & _
"</td>" & _
"</tr><tr><td> </td>" & _
"<td align=""right""><input type=""submit"" value=""zoek op"" /></td>" & _
"</tr>" & _
"</table>"
End If
%> |
Let op dat je bij regel 55 de LDAP server en de bedrijfsnaam (of hoe je tree ook heet) invult, en op regel 62/63 een username en indien nodig een password.
Ik heb hier een zooi proprietary velden gebruikt, je merkt van zelf welke wel en niet werken. Als je een unknown error krijgt, moet je even proberen alleen het CN veld op te vragen. Succes!