#authentication #asp-classic #ldap
#аутентификация #asp-classic #ldap
Вопрос:
Я хочу передать имя пользователя и пароль в LDAP и получить информацию о пользователе. У меня есть код ниже, но я не знаю, где я должен добавить в него строку пароля?
strUsername = Request.Form("username")
strPassword = Request.Form("password")
Set rootDSE = GetObject("LDAP://RootDSE")
Set oConn = CreateObject("ADODB.Connection")
sDomainContainer = rootDSE.Get("defaultNamingContext")
Debug "DomainContainer: " amp; sDomainContainer
oConn.Properties("Encrypt Password") = true
oConn.Provider = "ADSDSOObject"
oConn.properties("user id") = sLdapReaderUsername
oConn.properties("password") = sLdapReaderPassword
oConn.Open "ADs Provider"
sQuery = "<LDAP://" amp; sDomainContainer amp; ">;(sAMAccountName=" amp; strUsername amp; ");adspath,mail,displayName;subtree"
Set userRS = oConn.Execute(sQuery)
If Not userRS.EOF and not err then
sFullName = userRS("displayName")
sEmail = userRS("mail")
sExternalID = ""
sOrganization = ""
Response.Write("sFullName: "amp;sFullName)
Response.Write("sEmail: "amp;sEmail)
.
..
...
Комментарии:
1. Как вы уже видели, мой вопрос касается аутентификации на asp. Но ваш ответ на C #.
Ответ №1:
Это сработало для меня:
function AuthenticateUser(Username,Password,Domain)
dim strUser,strPass,strQuery,oConn,cmd,oRS
AuthenticateUser = false
strQuery = "SELECT cn FROM 'LDAP://" amp; Domain amp; "' WHERE objectClass='*'"
set oConn = server.CreateObject("ADODB.Connection")
oConn.Provider = "ADsDSOOBJECT"
oConn.properties("User ID") = Username
oConn.properties("Password")=Password
oConn.properties("Encrypt Password") = true
oConn.open "DS Query", Username,Password
set cmd = server.CreateObject("ADODB.Command")
set cmd.ActiveConnection = oConn
cmd.CommandText = strQuery
on error resume next
set oRS = cmd.Execute
if oRS.bof or oRS.eof then
AuthenticateUser = false
else
AuthenticateUser = true
end if
set oRS = nothing
set oConn = nothing
end function