LDAP连接和搜索

时间:2018-08-29 13:16:34

标签: vb.net ldap

我对LDAP完全陌生,我需要获取我办公室LDAP中的一些信息,没有人可以帮助我。 这是我得到的信息(出于安全原因,我做了一些更改):

  • host:the.ldap.host
  • 搜索库:ou = People,dc = xxx,dc = yyyy,dc = zzzzz
  • 过滤器:(projectTeams = manager)
  • 用户:uid = eric,ou =技术,dc = xxx,dc = yyyy,dc = zzzzz
  • 密码:blabla

我要做的就是找到所有“经理”

这是我的代码:

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”

我已经花了两天时间尝试。欢迎所有帮助。

1 个答案:

答案 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。