【问题标题】:2 line Active Directory call fails for offshore contractors using VPN to connect to our company network使用 VPN 连接到我们公司网络的离岸承包商的 2 线 Active Directory 呼叫失败
【发布时间】:2010-02-10 06:16:15
【问题描述】:

我们有离岸承包商正在尝试运行执行以下 Active Directory 调用的应用程序,如下所示,在 VB.NET 中

  Dim objRootDSE As New DirectoryEntry("LDAP://RootDSE")
  Return "GC://" & Replace(Replace(objRootDSE.Properties("rootDomainNamingContext").Value().ToString, ",", "."), "DC=", "") 'DC=uis,DC=unisys,DC=com  

代码在函数返回行返回错误,表示无法联系服务器,当它在本地为我工作时,它是“DC=uis,DC=unisys,DC=com”

承包商通过 VPN 连接到我们公司的内部网络,并且通常可以访问整个网络,所以我不知道为什么他们应该无法联系到这个服务器。

其他地点的其他离岸用户使用相同的代码没有问题。

我对 AD 几乎一无所知。谁能给我一个线索?

【问题讨论】:

    标签: vb.net active-directory adsi


    【解决方案1】:

    该代码适用于您,因为您在加入您的域 (uis.unisys.com) 的计算机上运行它,并且您以该域中的用户身份登录。当您在第二行访问 DirectoryEntry 时,您是在用户执行程序的上下文中执行此操作的。因为顾问不在您的域中使用/拥有帐户,所以他们无权访问。

    简化说明:您会发现很难让上面的代码在任何未加入您的网络的域的计算机上运行(因为查找 RootDSE 依赖于此)。您的代码的目的是获取域名并进行全局目录 (GC) 搜索。您很可能会发现程序中的其他代码无法在未连接到您的域的系统上运行。

    我会建议这样做:

    Dim objRootDSE As New DirectoryEntry("GC://uis.unisys.com", "username", "password")
    

    用户名和密码与您域中的服务帐户匹配。这样,顾问就可以在该用户的上下文中连接到您的域并执行所需的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多