Přímo to nefungovalo. Je nutná např. autorizace na LDAP serveru a aby bylo nastaveno, že si uživatel musí heslo při příštím přihlášení změnit, je nutné přidat jeden krátký příkaz.
Tento skript už funkční je, který jsem poté implementoval do ASP stránky.
Na stránky se uživatelé zatím autorizují pomocí základního ověřování a tyto údaje jsou pak použity pro připojení k LDAP.
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Properties("User ID") = "DOMENA\Username"
objConnection.Properties("Password") = "Password"
objConnection.Properties("Encrypt Password") = TRUE
objConnection.Properties("ADSI Flag") = 3
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=test,dc=local' WHERE objectCategory='user' " & _
"AND sAMAccountName='" & pUsername & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
vOU = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
Loop
Set objUser = GetObject ("LDAP://" & vOU)
objUser.SetPassword pPassword
objUser.Put "pwdLastSet", "0"
objUser.SetInfo