That error usually means that you are not on the domain.
Here is a function that should do what you want:
public function boolean wf_checklogin (string as_domain, string as_userid, string as_password);// validate domain/userid/password
OLEObject ole_wsh
Boolean lb_Result
String ls_code
// define VBScript
ls_code = 'Function fnCheckAccess()~r~n' &
+ 'const ADS_SECURE_AUTHENTICATION = &h0001~r~n' &
+ 'const ADS_CHASE_REFERRALS_ALWAYS = &H60~r~n' &
+ 'strDomain = "' + as_Domain + '"~r~n' &
+ 'strUserID = "' + as_Userid + '"~r~n' &
+ 'strUserPWD = "' + as_Password + '"~r~n' &
+ 'strPath = "LDAP://" & strDomain & "/OU=Users,DC=" & strDomain~r~n' &
+ 'On Error Resume Next~r~n' &
+ 'set objDSO = GetObject("LDAP:")~r~n' &
+ 'set objUser = objDSO.OpenDSObject(strPath, strUserID, strUserPWD, ADS_SECURE_AUTHENTICATION OR ADS_CHASE_REFERRALS_ALWAYS)~r~n' &
+ 'if Err.Number <> 0 then~r~n' &
+ ' fnCheckAccess = False~r~n' &
+ 'else~r~n' &
+ ' fnCheckAccess = True~r~n' &
+ 'end if~r~n' &
+ 'Err.Clear~r~n' &
+ 'On Error Goto 0~r~n' &
+ 'set objDSO = Nothing~r~n' &
+ 'set objUser = Nothing~r~n' &
+ 'end function'
ole_wsh = CREATE OLEObject
ole_wsh.ConnectToNewObject("MSScriptControl.ScriptControl")
// set the VBScript
ole_wsh.Language = "vbscript"
ole_wsh.AddCode(ls_code)
// run the function
If String(ole_wsh.Eval("fnCheckAccess")) = "true" Then
lb_Result = True
Else
lb_Result = False
End If
ole_wsh.DisconnectObject()
DESTROY ole_wsh
Return lb_Result
end function