在我们公司,我们有一个项目应该将 Novell eDirectory 与 .net 应用程序一起使用。我已尝试使用 Novell Api (http://www.novell.com/coolsolutions/feature/11204.html) 在 .NET 应用程序之间进行连接。它工作正常。
但是,根据要求,我们特别需要 .net API 以不与 Novell Api 连接,这不起作用。与 .NET Api 的连接和绑定DirectoryServices
不起作用。
我们的 Novell eDirectory 使用以下凭据安装:
IP地址:10.0.x.xx(witsxxx.companyname.com)
树 : SXXXX
新树上下文:WIxxxK01-NDS.OU=STATE.O=ORG
管理员上下文是:ou=STATE,o=ORG
管理员:管理员
密码:管理员
我使用了 Novell Api 并使用了以下代码
String ldapHost ="10.0.x.xx";
String loginDN = "cn=admin,cn=WIxxxK01-NDS,OU=STATE,o=ORG";
String password = string.Empty;
String searchBase = "o=ORG";
String searchFilter = "(objectclass=*)";
Novell.Directory.Ldap.LdapConnection lc = new Novell.Directory.Ldap.LdapConnection();
try
{
// connect to the server
lc.Connect(ldapHost, LdapPort);
// bind to the server
lc.Bind(LdapVersion, loginDN, password);
}
这是正确绑定并且可以进行搜索。
现在我的问题是当我尝试使用 .NET APi 并使用System.DirectoryServices
orSystem.DirectoryServices.Protocols
时,它没有连接或绑定。
我什至无法测试以下DirectoryEntry.Exists
方法。它会例外。
string myADSPath = "LDAP://10.0.x.xx:636/OU=STATE,O=ORG";
// Determine whether the given path is correct for the DirectoryEntry.
if (DirectoryEntry.Exists(myADSPath))
{
Console.WriteLine("The path {0} is valid",myADSPath);
}
else
{
Console.WriteLine("The path {0} is invalid",myADSPath);
}
它在说Server is not operational
等等Local error occurred
。我不知道目录路径发生了什么。
我试过了
DirectoryEntry de = new DirectoryEntry("LDAP://10.0.x.xx:636/O=ORG,DC=witsxxx,DC=companyname,DC=com", "cn=admin,cn=WIxxxK01-NDS,o=ORG", "admin");
DirectorySearcher ds = new DirectorySearcher(de, "&(objectClass=user)");
var test = ds.FindAll();
所有人都会例外。
你能帮我解决这个问题吗?应该怎么userDN
做DirectoryEntry
?
我也用过,System.DirectoryServices.Protocols.LdapConnection
但没有结果。只有相同的例外。LdapDirectoryIdentifier
System.Net.NetworkCredential
感谢您宝贵的时间和帮助。
谢谢,比努