从LDAP服务器获取属性(可分辨名称等)

本文关键字:服务器 LDAP 获取 属性 | 更新日期: 2023-09-27 18:20:58

我需要帮助使用C#4.0代码从LDAP服务器检索所有可能的属性(可分辨名称等)和值
我的最终用户只需在我的应用程序中输入LDAP服务器的名称
LDAP服务器可以是专用服务器,也可以是本页中提供的开放式LDAP服务器"公用LDAP服务器"
我使用System.DirectoryServices.Protocols.LdapConnection类连接到LDAP服务器,使用System.DirectoryServices.Protocols.SearchRequest类检索值。

这是我的问题:

System.DirectoryServices.Protocols.SearchRequest类需要服务器的可分辨名称作为检索用户、组等的参数。
我的最终用户只需输入服务器名称
我必须通过我的C#代码从服务器上获得可分辨的名称。我找不到(甚至用谷歌搜索)解决我问题的C#解决方案
我在网上找到了一个应用程序,它实际上满足了我的需求。我只是简单地提供了LDAP服务器名称,它从该服务器检索值(可分辨名称、端口号等)

有人能为我提供一个使用C#.NET 4.0获取值的解决方案吗?

我不能使用任何付费的第三方软件或dll

从LDAP服务器获取属性(可分辨名称等)

LDAP不使用属性,它具有特性。要从服务器获取属性,LDAP客户端必须连接到服务器,使用BIND请求验证连接,然后向服务器发送搜索请求并解释服务器的响应。搜索请求至少包括以下内容:

  • 基础对象
  • 搜索范围
  • 搜索筛选器
  • 要检索的属性列表

正确编码的LDAP客户端除了上述必需元素外,还将包括大小限制和时间限制。

来自服务器的搜索结果将包含一个整数结果代码和一个与搜索请求参数匹配的对象列表(由搜索过滤器过滤)。搜索可以成功,但不返回任何条目。

如果基础对象未知,则发送对根DSE中的namingContexts属性的搜索请求。根DSE只能通过使用"的基对象和"base"的搜索范围来获得。过滤器应为(&)(objectClass=*)。目录服务器在根DSE中发布某些信息,包括命名上下文,尽管这些信息与其他信息一样受到访问控制。

另请参阅

  • LDAP:搜索最佳实践
  • LDAP:编程最佳实践
  • LDAP:根DSE