我对LDAP完全陌生,我需要获取我办公室LDAP中的一些信息,没有人可以帮助我。 这是我得到的信息(出于安全原因,我做了一些更改):
我要做的就是找到所有“经理”
这是我的代码:
Dim oRoot2 As DirectoryEntry = New DirectoryEntry ("LDAP://the.ldap.host", "uid=eric,ou=Technical,dc=xxx,dc=yyyy,dc=zzzzz", "blabla",AuthenticationTypes.None)
try
Dim connected As Object = oRoot2.NativeObject
msgbox "Connected"
Dim searcher As DirectorySearcher = New DirectorySearcher(oRoot2)
searcher.Filter = "(projectTeams=manager)"
Dim DirEntry As DirectoryEntry
For Each result As SearchResult In searcher.FindAll
DirEntry = result.GetDirectoryEntry
lst.Items.Add(DirEntry.Properties("iam-uid").Value)
Next
catch ex as exception
msgbox (ex.message)
End try
运行时,我收到了“已连接”消息框,但收到错误消息“服务器上没有这样的对象”。在执行以下行时会引发此错误:
For Each result As SearchResult In searcher.FindAll
我不知道如何编码搜索基础为“ ou = People,dc = xxx,dc = yyyy,dc = zzzzz”
我已经花了两天时间尝试。欢迎所有帮助。
答案 0 :(得分:0)
我终于找到了一种获取所需信息的方法,这是适合我的代码:
Dim oRoot2 As DirectoryEntry = New DirectoryEntry ("LDAP://the.ldap.host/ou=People,dc=xxx,dc=yyyy,dc=zzzzz", "uid=eric,ou=Technical,dc=xxx,dc=yyyy,dc=zzzzz", "blabla",AuthenticationTypes.None)
这一小小的更改将更改所有内容,其余代码(见下文)现在可以正常工作。
try
Dim connected As Object = oRoot2.NativeObject
msgbox "Connected"
Dim searcher As DirectorySearcher = New DirectorySearcher(oRoot2)
searcher.Filter = "(projectTeams=manager)"
Dim DirEntry As DirectoryEntry
For Each result As SearchResult In searcher.FindAll
DirEntry = result.GetDirectoryEntry
lst.Items.Add(DirEntry.Properties("iam-uid").Value)
Next
catch ex as exception
msgbox (ex.message)
End try
我花了3个工作日才能找到这个... pfff。