c# - 使用 DirectoryServices 从 C# 连接到 LDAP

标签 c# ldap directoryservices novell edirectory

我正在尝试连接到运行 LDAP 的 edirectory 8.8 服务器。我将如何着手在 .Net 中执行此操作?我是否仍可以使用 System.DirectoryService 中的类,例如 DirectoryEntry 和 DirectorySearcher,或者它们是否特定于 AD?我是否需要以任何不同方式指定“连接字符串”?

我正在尝试类似下面的代码,但它似乎不起作用...

DirectoryEntry de = new DirectoryEntry ("LDAP://novellBox.sample.com","admin","password",AuthenticationTypes.None);
DirectorySearcher ds = new DirectorySearcher(de);
var test = ds.FindAll();

有什么想法吗?

最佳答案

好吧,我认为您的连接字符串有点缺失 - 仅指定服务器名称不够好 - 您还需要指定搜索的“起点”。

在 AD 中,这通常类似于您域中的“用户”容器,您可以按照 LDAP 的说法这样指定:

LDAP://novellBox.sample.com/cn=Users,dc=YourCompany,dc=com

不确定较新版本的 eDirectory 与 LDAP 的兼容性如何 - 但它应该可以工作,因为从理论上讲,无论实现如何,它都是标准的 LDAP :-)

不过话又说回来了:只是理论上,理论和实践没有区别......

还有一个 System.DirectoryServices.Protocols 命名空间,它直接提供低级别的 LDAP 调用 - 绝对与 AD 无关,但它确实非常低级别......

还有一个 Novell C# LDAP library但我从来没有尝试过,也不能说它有多完整或有能力。不过,它可能会给您一些线索!

另请参阅其他 Stackoverflow question关于 Novell、LDAP 和 C# - 它可能会为您提供更多信息。

关于c# - 使用 DirectoryServices 从 C# 连接到 LDAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1437250/

相关文章:

c# - RibbonComboBox 选定的图库项目在鼠标离开时恢复为旧值

c# - TCP 连接到 Azure 失败

c# - PythonNET DateTime C# .NET List 如何填充它?

c# - 在 Visual Studio 中合并两个项目并相互访问文件

java - InMemoryDirectoryServer,处理请求(绑定(bind)、修改等)

python - 如何在Django中拆分ldap参数

php - 如何使用 PHP 从 LDAP 目录中获取用户列表?

c# - 如何使用网络 API 获取用户组

c# - 提高 System.DirectoryServices.AccountManagement 的性能

c# - 使用 PrincipalSearcher.FindAll() 时发生内存泄漏