0

我正在研究 LDAP,我已经在我的本地机器上安装了 OpenLDAP,并创建了一个 RootDSE 作为 dc=wave,dc=com。

我正在尝试使用以下代码获取此 baseDN:

DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("LDAP://{0}", server), "CN=Manager,dc=wave,dc=com", "secret");
string dnPath;
try
{
    dnPath = directoryEntry.Properties["distinguishedName"].Value.ToString();
}
catch
{
    dnPath = "";
}

但它总是属于例外,为什么我需要为用户名传递整个 dn?

同样的事情,如果我尝试使用 Active Directory 服务器,它可以完美运行,我也不需要为用户名传递整个 dn。

任何的想法?

4

1 回答 1

0

System.DirectoryServices 命名空间实际上只适用于 Active Directory。在使用任何其他目录时,您应该切换到使用 System.DirectoryServices.Protocols。您可能会发现在使用 AD 时它会更好。

于 2012-06-22T14:18:14.140 回答