2010-07-26 55 views
1

我有一个经典的ASP页面,它向我们的域控制器发出了一个LDAP调用来找出登录用户的组成员资格。由于我们的网络管理员降级了两台旧的Windows Server 2003域控制器并升级了两台Windows Server 2008 R2服务器,因此该页面现在失败,失败的代码为Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)(错误代码为800704bc)。在ASP页面中的LDAP呼叫不再起作用

Dim Strgroups 

Const STAFF_GROUP = "cn=staff" 
Const STUDENT_GROUP = "cn=student" 

Set ADSysInfo = CreateObject("ADSystemInfo") 
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) 

If IsArray(CurrentUser.MemberOf) Then 
     strGroups = LCase(Join(CurrentUser.MemberOf)) 
Else 
     strGroups = LCase(CurrentUser.MemberOf) 
End If 

任何帮助表示赞赏。提前致谢。

回答

1

不知道为什么,但我需要在服务器和DC之间的防​​火墙上打开高端口(1024+)。必须是RPC的东西。

1

我猜这不是问题的代码,而是与新服务器(显然)有关。

我不知道800704bc是什么错误,但检查并看到ADSysInfo实际上正在实例化。如果没有,那么可能是服务器上没有模块或其他东西。

0

新服务器是否阻止未加密的绑定?如果是这样,那么当你绑定LDAP而不是LDAPS或StartTLS时,这是有意义的。

+0

如何判断他们是否阻止未加密的绑定? – tonyyeb 2010-07-29 07:15:43

+0

通常你会得到一个错误13,在响应中需要加密。 – geoffc 2010-07-30 02:06:23