LDAP + ASP Classic + ADODB = 2147217865. (Использование LDAP для связи с Active Directory в ASP Classic. Ошибка: 2147217865)

Мне нужно использовать LDAP для аутентификации пользователей на старом веб-сайте ASP.

Я использовал код, найденный здесь .

Это выглядит так:

<%@ LANGUAGE=VBSCRIPT %>
<%Option Explicit%>

<%
Function getADUserInfo(strUID)
    on error resume next
    strGeneralLookupError = false
    strBase = ""
    strFilter = "(sAMAccountName=" & strUID & ")" 
    strAttributes = "cn, mail, company, givenName, sn, ADsPath, name, sAMAccountName, telephoneNumber"
    'strAttributes = "cn, company, givenName, sn, ADsPath, name, sAMAccountName, telephoneNumber"
    strScope = "subtree"    
    strFullCommand = strBase & ";" & strFilter & ";" & strAttributes & ";" & strScope
    set rsADUserInfo = Server.CreateObject("ADODB.Recordset")
    set rsADUserInfo = connAD.Execute(strFullCommand)
    if err.number <> 0 then
        strGeneralLookupError = true
    end if
    set getADUserInfo = rsADUserInfo
    set rsADUserInfo = Nothing
End Function

Sub getUserData(p_strUserID)
    on error resume next
    set rsUserData = Server.CreateObject("ADODB.Recordset")
    set rsUserData = getADUserInfo(p_strUserID)
    if not rsUserData.EOF then
        strUserGN = rsUserData("givenName")
        strUserSN = rsUserData("sn")
        strUserOU = rsUserData("company")
        strUserEmail = rsUserData("mail")
        strUserPhone = rsUserData("telephoneNumber")
    else
        strADLookupSuccess = false
    end if
    rsUserData.Close
    set rsUserData = Nothing
End Sub

on error resume next

response.expires = 0

DIM connAD, rsUserData, rsADUserInfo
DIM strUserGN, strUserSN, strUserOU, strUserEmail, strUserPhone
DIM strBase, strFilter,strAttributes, strScope, strFullCommand
DIM strGeneralLookupError, strADLookupSuccess
DIM strUserID

strUserGN = "The user can not be found in the system."
strGeneralLookupError = false
strADLookupSuccess = true

set connAD = Server.CreateObject("ADODB.Connection")
connAD.Provider = "ADsDSOObject"
connAD.Properties("User ID") = "[DOMAIN]\[USERNAME]" ' ### remember to make sure this user has rights to access AD
connAD.Properties("Password") = "[PASSWORD]"
connAD.Properties("Encrypt Password") = true
connAD.Open

strUserID = "[USERNAME YOU WANT INFO FOR]"
call getUserData(strUserID)

connAD.Close
set connAD = Nothing
%>



ASP Code to access AD with LDAP Page


<%=strUserGN%> 
<%=strUserSN%>
<%=strUserOU%>
<%=strUserEmail%>
<%=strUserPhone%>

Я могу получить информацию, используя C #, поэтому я не думаю, что проблема связана с сервером.

Все, что я получил, это ошибка 2147217865.

Сервер AD - это Windows Server 2003.

веб-сервером является IIS в XP Pro.

Я попытался изменить strFullCommand на:

Select cn From 'LDAP://SEVERPATH' where objectClass='user'" & " and objectcategory='person'

Никаких кубиков. Есть идеи?

1
задан NitroxDM 8 October 2010 в 22:51
поделиться