0

我正在使用 LDAP 来查询可用域的列表。当我在有一张网卡可用并且成功查询域列表的机器上运行它时,我的逻辑工作正常,但是当我在有多个网卡的机器上运行它时,即一个用于域 A,另一个用于域 B,我得到异常原因很简单,即 DirectoryEntry() 绑定失败。

我只需要为此使用 LDAP 提供程序。

下面是代码片段:

using (DirectoryEntry RootDSE = new DirectoryEntry("LDAP://rootDSE"))
    {
        // Retrieve the Configuration Naming Context from RootDSE
        string configNC = RootDSE.Properties["configurationNamingContext"].Value.ToString();

        // Connect to the Configuration Naming Context
        using (DirectoryEntry configSearchRoot = new DirectoryEntry("LDAP://" + configNC))
        {
            // Search for all partitions where the NetBIOSName is set.
            using (DirectorySearcher configSearch = new DirectorySearcher(configSearchRoot))
            {
                configSearch.Filter = ("(NETBIOSName=*)");

                // Configure search to return dnsroot and ncname attributes
                configSearch.PropertiesToLoad.Add("dnsroot");
                configSearch.PropertiesToLoad.Add("ncname");
                using (SearchResultCollection forestPartitionList = configSearch.FindAll())
                {
4

1 回答 1

0

当使用没有服务器或域的 LDAP 绑定字符串时,例如LDAP://rootDSE,默认域将是计算机加入的域。如果计算机未加入域,则绑定将失败(您还需要提供用户名和密码)。运行应用程序的用户,或网站/服务的线程,或绑定期间指定的用户,必须能够在目标域上读取,否则绑定将失败。

如果这些都不能解决您的问题,那么您需要提供有关这两个域的更多信息。例如,他们是否在同一个森林中?

于 2012-11-26T16:00:52.670 回答