0

我需要帮助来使用C# 4.0代码从 LDAP 服务器检索所有可能的属性(专有名称等)和值。我的最终用户只需在我的应用程序中输入 LDAP 服务器的名称。LDAP 服务器可以是私有服务器或开放式 LDAP 服务器,如本页公共 LDAP 服务器中可用的那样。 我正在使用类连接到 LDAP 服务器和类来检索值。


System.DirectoryServices.Protocols.LdapConnectionSystem.DirectoryServices.Protocols.SearchRequest

这是我的问题:

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

有人可以为我提供一个使用 C# .NET 4.0 获取值的解决方案。

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

4

1 回答 1

0

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

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

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

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

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

也可以看看

于 2013-07-03T11:26:04.307 回答