检索Lotus Notes Domino目录组和用户

时间:2014-07-11 13:19:58

标签: vb.net directory lotus-domino

使用Studio 2013 VB。

我正在尝试从Lotus Notes Domino目录中检索组成员 - 但我无法通过此错误:“发生了协议错误。指定了失败的无效身份验证方法。”我假设(可能不正确)可以使用DirectorySearcher完成,就像我们为Active Directory一样。

我尝试使用相同的结果检索各种数据。我的研究似乎表明ldapsettings存在问题,但我使用的是其他内部脚本使用的相同别名和特定ldapsettings(尽管用perl编写)。所以ldapsettings仍然可能是问题所在。

失败的代码行是:

Dim result As SearchResult = searcher.FindOne

searcher.Filter的值是(&(objectclass = dominoGroup)(cn = mydominogroup)) 所以这看起来是正确的。

任何有关我的代码中的错误的帮助 - 甚至是更好的方式来完成此任务的建议表示赞赏。

这是我的代码:

dim grp as String = "mydominogroup"
Using dEntry As New DirectoryEntry("LDAP://mycompanyldapsettings")
   dEntry.Username = myadminaccount
   dEntry.Password = myadminpassword

   Using searcher As New DirectorySearcher(dEntry)
      searcher.Filter = String.Format("(&(objectclass=dominoGroup)(cn={0}))", grp)
      Dim result As SearchResult = searcher.FindOne <--fails here
      If result Is Nothing Then
          "report group not found"
      Else
           Dim members As Object = result.GetDirectoryEntry.Invoke("Members", Nothing)
           If members Is Nothing Then
               "report no members found in group"
           Else
               For Each member As Object In CType(members, IEnumerable)
                  Dim currentMember As New DirectoryEntry(member)
                  If currentMember.SchemaClassName.ToLower = "user" Then
                        Dim props As PropertyCollection = currentMember.Properties
                        "get and list the user pros("someattribute").Value)"
                  End If
               Next
           End If
      End If
   End Using
End Using

1 个答案:

答案 0 :(得分:0)

决定调用外部进程来解决此问题。