10

我有一个使用 ActiveDirectoryMembershipProvider 授予用户访问权限的应用程序。应用程序托管在非域机器上,应用程序服务器和域控制器之间有防火墙。

我们已经在内部网络上打开了到 DC 的 LDAP 端口 - 但无论我们尝试什么,最终都会出现“无法联系指定的域或服务器”的错误消息。

有人对我如何解决这个问题有任何建议吗?我们已经尝试了我们能想到的一切,但还是一无所获。

我的连接字符串是:

<add name="ADConnectionString"
    connectionString="LDAP://10.5.3.7:389/DC=MyTestDomain,DC=local"/>

我的提供者是:

<add name="ActiveDirectoryMembershipProvider"
    type="System.Web.Security.ActiveDirectoryMembershipProvider"
    connectionStringName="ADConnectionString"
    attributeMapUsername="SAMAccountName"
    connectionProtection="None"
    connectionUsername="LdapUser"
    connectionPassword="LdapPassword"   />
4

6 回答 6

4

应用程序托管在非域机器上,应用程序服务器和域控制器之间有防火墙。

由于您可以使用 LDAP 工具直接查询,这表明防火墙已正确打开。但是,请记住,它使用的ActiveDirectoryMembershipProvider不是普通的旧 LDAP,而是使用 Microsoft 技术。例如,如果您设置connectionProtection="Secure",ADMP 将尝试使用 SSL 和端口 636,如果失败,它将使用 Microsoft 内置的 IPSec 签名(有关详细信息,请参阅本文)。

无论如何,这让我想知道几件事:

  1. AD 域是否具有拒绝来自非域/未配置计算机的连接的 IPSec“必需”策略?(可能不是,因为您连接的是纯 LDAP,但值得研究。)
  2. 您是否已将域控制器的 NetBIOS 名称添加到您的 lmhosts 文件中,并将其 DNS 名称添加到您的主机文件中?(许多协议会检查其目标报告的名称是否与您尝试连接的名称匹配。)
  3. 很多人已经注意到在不同域之间使用 ADMP 的问题,并且该解决方案需要创建单向信任。由于听起来您的客户端计算机不在域中,因此您无法获得该信任-除非(a)它是具有单向信任的不同域的成员,或者(b)它是相同的域,因此客户端-服务器信任是隐式的。
于 2009-09-16T14:19:33.613 回答
3

似乎解决方案是打开端口 445。

阅读此线程

我们不允许打开,所以我想我被卡住了。

于 2009-08-21T12:48:04.710 回答
1

我有这个错误,并设法修复它。导致这种情况的原因有很多,这里有一个待办事项列表来确定确切的问题:

  1. 创建一个微应用程序,使用单一方法 Membership.GetAllUsers(),在 Active Directory (AD) 之外的机器上执行,连接字符串中的密码不正确,检查是否出现密码错误异常。如果你没有得到它,你就无法连接到你的AD服务器,检查防火墙,如果你确实得到了无效密码异常,转到下一步。

  2. 如果可以,请尝试在 AD 服务器上本地执行相同的应用程序,首先使用不正确的密码,而不是使用正确的本地执行应用程序提供更详细的异常什么是错误的(对我来说,这个异常导致我修复问题)。在我的情况下,它告诉我服务器服务没有启动,而不是工作站服务没有启动。

关于它需要服务器和工作站服务在服务器上工作这一事实的一些想法:afaik 服务器服务用于 Windows 文件共享(基于 TCP 的 netbios),并且使用 445 端口,所以这个端口必须在除了 LDAP 端口。我的第二个观察是,如果 445 端口打开(netstat -an)它仍然无法工作,如果 Windows 客户端和文件和打印机共享复选框未在接收此数据包的网络接口适配器上选中,winows 会将所有数据包丢弃到该端口. 检查“telnet External_IP 445”。这就是我在努力解决这个问题时收集的所有信息。

于 2011-11-09T05:22:36.833 回答
1

你可以用这两篇文章,可能会解决你的问题

www.ddj.com/windows/184406424

forums.asp.net/t/1408268.aspx

并检查你的防火墙

于 2009-09-16T12:43:23.440 回答
0

您是否使用 LDAP 浏览工具进行了测试,从远程框看它是否可以连接到这里使用的标准?即它是连接问题还是其他问题?

于 2009-08-13T00:58:02.117 回答
0

万一有人偶然发现并想把头砸在墙上……最近尝试为我公司在与当前上下文不同的域中的 AD 服务器执行所有这些操作。正在使用提供的 IP 并出现故障,如此处所述。甚至使用了像 Softerra LDAP Admin 这样的工具,它工作得很好,但是 AccountManagement 失败了。

我们有一个与该 IP 地址挂钩的公开 URL(仍然只允许某些 IP 进行调用)。一旦我用提供的 URL 替换了 IP,它就像一个魅力。

希望这可以节省我刚刚让自己经历的时间。

于 2015-02-12T22:23:57.743 回答