1
我有一个程序,我开发了查找用户信息在LDAP并返回到ListView查询2个域。它适用于一个域,当我尝试在IF语句中包含第二个错误时,它将失败,如LDAP中的某些内容为空,当我手动检查时,它不为空。我的if语句中的逻辑可能有缺陷,有人可以偷看吗?vb.net LDAP在同一时间
Dim userIds As IEnumerable(Of String) = {"test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8"}
For Each i As String In userids
Dim de As New DirectoryEntry("LDAP://domain1.com:389/DC=domain1,DC=com")
Dim LdapFilter As String = "(sAMAccountName=" & i & ")"
Dim searcher As New DirectorySearcher(de, LdapFilter)
Dim result As SearchResult = searcher.FindOne()
Dim res As SearchResultCollection = searcher.FindAll()
If res Is Nothing OrElse res.Count <= 0 Then
Dim tdbfg As New DirectoryEntry("LDAP://domain2.com:389/OU=Users,OU=domain2,DC=domain2,DC=com")
Dim TDLdapFilter As String = "(sAMAccountName=" & i & ")"
Dim TDsearcher As New DirectorySearcher(tdbfg, TDLdapFilter)
Dim TDresult As SearchResult = searcher.FindOne()
Dim item As ListViewItem = ListView1.Items.Add(i)
item.SubItems.Add(result.Properties("displayName")(0).ToString())
item.SubItems.Add(result.Properties("title")(0).ToString())
item.SubItems.Add(result.Properties("userPrincipalName")(0).ToString())
Else
Dim item As ListViewItem = ListView1.Items.Add(i)
item.SubItems.Add(result.Properties("displayName")(0).ToString())
item.SubItems.Add(result.Properties("title")(0).ToString())
item.SubItems.Add(result.Properties("userPrincipalName")(0).ToString())
End If
Next
基本上,如果它无法在第一次搜索中找到用户标识,它应该再次在第二个域中查找并返回结果。另外,我怎样才能把它变成一个ELSEIF语句?我想有另外一个声明,说如果这两个域名不在任何一个域中,那么“做某事”。
谢谢!
OP正在回答他/她自己的问题。标记为“谢谢”答案在此处不适用。 – showdev 2014-10-29 16:34:13
家伙,我回答了我自己的问题,所以我认为这将是有益的。瑞恩 - 冷静下来,如果你愿意阅读我的回复,你会意识到为什么我将它添加为答案。 – 2014-10-29 16:42:39