为什么LDAP查询可以与asp.net一起工作,而不能与经典asp.net一起工作

为什么LDAP查询可以与asp.net一起工作,而不能与经典asp.net一起工作,asp.net,iis,asp-classic,ldap,windows-server-2003,Asp.net,Iis,Asp Classic,Ldap,Windows Server 2003,我正在尝试设置与另一个域的LDAP连接代码。我的Windows服务器2k3是域A的一部分。我正在尝试LDAP域B。现在我要做的是: test = "LDAP://CN=a,OU=Users,DC=Domain,DC=Domain" Set connAD=getobject(test) 这将产生错误“80072020” 与我在asp.net中所做的相同: DirectoryEntry user = new DirectoryEntry("LDAP://CN=a,OU=Users,DC=Domai

我正在尝试设置与另一个域的LDAP连接代码。我的Windows服务器2k3是域A的一部分。我正在尝试LDAP域B。现在我要做的是:

test = "LDAP://CN=a,OU=Users,DC=Domain,DC=Domain"
Set connAD=getobject(test)
这将产生错误“80072020”

与我在asp.net中所做的相同:

DirectoryEntry user = new DirectoryEntry("LDAP://CN=a,OU=Users,DC=Domain,DC=Domain");
DirectorySearcher ds = new DirectorySearcher(user);
这很有效


如果我将身份验证机制从集成Windows更改为Basic,则两者都可以工作。我不知道到底是什么问题。

GetObject
不用于查询LDAP。您需要一个COM组件来查询LDAP。

我曾经实现的方法是使用ADODB。大概是这样的:

set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "ADsDSOObject"
conn.Properties("User ID") = "[DOMAIN]\[USERNAME]" 
connAD.Properties("Password") = "[PASSWORD]"
connAD.Properties("Encrypt Password") = true
connAD.Open

set test = "LDAP://CN=a,OU=Users,DC=Domain,DC=Domain"

set rs = Server.CreateObject("ADODB.Recordset")
set rsADUserInfo = conn.Execute(test)

你的ASP示例不完整。你在寻找什么信息什么是
ads
以及
test
是如何使用的?很抱歉,复制粘贴错误。修复了它。我的错误。当我查询服务器所在的域时,它会工作。我不熟悉这个概念,但我可以告诉你我继承的代码库,它在那里工作。它不适用于经典asp中的新域。我正在尝试使用用户id和密码获取用户对象。