我必须编写一个网页来更改AD密码。该页面由IIS服务器托管。我只有旧的代码,这是用VisualBasicScript编写的已有10多年历史的.asp页,并且已多次修补。实际的问题是,尝试查询用户对象时出现80040E37错误,这意味着我没有查询数据的权限。
我发现在创建建立ADOConnection时显式使用用户/密码时,问题就消失了。但是我不想对凭证进行硬编码,在旧版本中也不会这样做。 我以某种方式通过了身份验证,因为我可以使用以下方式查询用户:
Set objSysInfo = Server.CreateObject("ADSystemInfo")
strUserName = objSysInfo.UserName
是同一用户进行硬编码。 我不知道这是编码问题还是IIS配置问题。
我从旧版本中提取了以下代码(注释行除外):
Dim adoConnection
Set adoConnection = createObject("ADODB.Connection")
adoConnection.Provider = "ADSDSOObject"
'adoConnection.Properties("User ID") = "USER"
'adoConnection.Properties("Password") = "PASSWORD"
'adoConnection.Properties("Encrypt Password") = True
adoConnection.Open
Dim adoCommand
set adoCommand = createObject("ADODB.Command")
Set adoCommand.ActiveConnection = adoConnection
adoCommand.Properties("Page Size") = 100
adoCommand.CommandText = "LDAPQUERY"
Dim adRecSet
set adRecSet = createObject("ADODB.Recordset")
adRecSet.open adoCommand
我期望(如果我取消注释这三行,则可以得到它)一个有效的结果对象;我收到错误消息:
发生操作错误。
80040E37
如何使用IIS服务器中配置的用户查询数据?