我正在尝试连接到运行 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/