无法从远程服务器

时间:2015-12-17 23:15:02

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

我是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上搜索此内容,但无法收集太多详细信息。

请建议我指点。

1 个答案:

答案 0 :(得分:0)

最后事情似乎很有效。

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

以下两条Netdom命令帮我识别了这种情况。

  1. netdom verify - 使用此命令发现计算机尚未加入域。
  2. netdom join - 使用此命令,能够将计算机加入网络域。
  3. 参考:https://technet.microsoft.com/en-us/library/cc772217.aspx

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