【问题标题】:Why would LDAP query work with asp.net but not with classic asp为什么 LDAP 查询可以与 asp.net 一起使用,但不能与经典 asp 一起使用
【发布时间】:2011-10-18 08:22:24
【问题描述】:

我正在尝试设置与另一个域的 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 更改为基本,那么两者都可以工作。我无法弄清楚到底是什么问题。

【问题讨论】:

  • 您的 ASP 示例不完整。
  • 你在找什么资料
  • 什么是ads,如何使用test
  • 很抱歉,复制粘贴错误。已修复。我的错。

标签: asp.net iis asp-classic ldap windows-server-2003


【解决方案1】:

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

【讨论】:

  • 当我查询服务器所在的域时它可以工作。我不熟悉这个概念,但我可以告诉你我继承的代码库,它在那里工作。它不适用于经典 asp 中的新域。
【解决方案2】:

我曾经实现的方式是使用 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)

【讨论】:

  • 我正在尝试使用用户 ID 和密码获取用户对象。
猜你喜欢
  • 2019-06-19
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多