【问题标题】:Can not access Active Directory domain controller from remote server无法从远程服务器访问 Active Directory 域控制器
【发布时间】:2015-12-17 23:15:02
【问题描述】:

我对 LDAP 和 Active Directory 集成部分非常陌生。尽管我成功配置了本地计算机以访问 Active Directory 域控制器,但当我将其部署在我们的一台服务器上时,既不是通过域的 IP 地址也不是通过域名可以访问它。

我的网站使用 ASP.NET C#。

收到此错误:

指定的域不存在或无法联系。

我写的访问AD的方法在这里:

private SearchResultCollection sResults { get; set; }
sResults = null;

public void SearchByUsername(string username)
{
   try
   {
       // initiate a directory entry
       private const string ldapPath = "LDAP://192.168.0.190/OU=Domain   Users,DC=mydomain,DC=net"                
       dEntry = new DirectoryEntry(ldapPath);

       dSearcher = new DirectorySearcher(dEntry);
       dSearcher.Filter = "(&(objectClass=user)(sAMAccountname= " + username +  "))";

       performSearch();
       getValues();
    }
    catch (Exception)
    {
        throw;
    }
}

private void performSearch()
{
    // perform search in Active Directory
    sResults = dSearcher.FindAll();
}

private void getValues()
{
    // loop through results of search
    foreach (SearchResult sResult in sResults)
    {
        Employee emp = new Employee();

        emp.CN = getProperty(sResult, "cn");
        emp.FirstName = getProperty(sResult, "givenName");
        emp.LastName = getProperty(sResult, "sn");
        emp.Username = getProperty(sResult, "sAMAccountname");
        emp.Email = getProperty(sResult, "mail");

        Employees.Add(emp);
    }
}

上述方法在我的本地机器上运行良好,无论是 IP 地址还是域名。我尝试使用的服务器是 Windows Server 2012 R2。

我运行命令nltest /dclist:mydomain.net 并确保服务器在域内,因为它返回了我的详细信息。即 DC 名称、IP 地址、域名。

我遇到了什么语法问题吗?还是与 DNS 等配置问题有关?

另外,想提一下,我尝试在 www.serverfault.com 上搜索此内容,但无法收集到太多详细信息。

请给我建议方向。

【问题讨论】:

  • 您是否熟悉PrincipalContext 您是否知道您可以在远程服务器上更快地捕获相同的信息并且使用更少的代码您是否在远程机器上的 GAC 中拥有这些程序集/dll? 987654324@
  • @MethodMan:我检查并发现这些 dll 在远程机器上。但他们的版本是 4.0.**.** 而我在本地机器上的版本是 4.6.**.**。我应该用本地的替换服务器吗?

标签: c# asp.net active-directory ldap


【解决方案1】:

一切似乎都解决了。

之前我提到我确保我正在使用的机器在域中,但那里的情况略有不同。我试图让事情工作的机器实际上不在域中,而是在工作组中。

以下两个 Netdom 命令帮助我确定了这种情况。

  1. netdom verify - 用这个命令发现机器没有加入域。
  2. netdom join - 使用此命令,可以将机器加入网络域。

参考:https://technet.microsoft.com/en-us/library/cc772217.aspx

一旦进入域,Active Directory 就可以立即访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2022-01-12
    • 2020-03-06
    • 2013-03-17
    相关资源
    最近更新 更多