I have a
VB application that validates users from a database table at present.Now I want it to validate against the domain users, instead of the existing setup.I will be specifying the domain name, the user will be asked to enter his/her windows domain user name & password in the login form. I ve tried applying various codes to meet my requirement & unfortunately, I m yet to get a true solution.
Domain server is Win 2000 & the
VB appln will be running on Win 98/NT/2000/XP systems.
I m pasting below the code that i ve tried...
Private Declare Function LogonUser Lib "Advapi32" Alias "LogonUserA" (ByVal _
lpszUserName As String, ByVal lpszDomain As String, _
ByVal lpszPassword As String, ByVal dwLogonType As Long, _
ByVal dwLogonProvider As Long, phToken As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As _
Long
Const LOGON32_PROVIDER_DEFAULT = 0&
Const LOGON32_LOGON_NETWORK = 3&
Const LOGON32_LOGON_INTERACTIVE = 2&
Const LOGON32_PROVIDER_WINNT50 = 3&
' Check whether a username/password pair is correct
'
' if DOMAIN is omitted, it uses the local account database
' and then asks trusted domains to search their account databases
' until it finds the account or the search is exhausted
' use DOMAIN="." to search only the local account database
Private Function CheckWindowsUser(ByVal UserName As String, _
ByVal Password As String, Optional ByVal Domain As String) As Boolean
Dim hToken As Long, ret As Long
' provide a default for the Domain name
If Len(Domain) = 0 Then Domain = vbNullString
' check the username/password pair
' using LOGON32_LOGON_NETWORK delivers the best performance
ret = LogonUser(UserName, Domain, Password, LOGON32_LOGON_NETWORK, _
LOGON32_PROVIDER_DEFAULT, hToken)
' a non-zero value means success
If ret Then
CheckWindowsUser = True
CloseHandle hToken
End If
End Function
"
LogonUser" returns 0 (zero) even if i provide the correct inputs.
Rgds,
SVM