Shared Function _ LogonUser(ByVal userName As String, ByVal domain As String, _ ByVal password As String, ByVal dwLogonType As Integer, _ ByVal dwLogonProvider As Integer, ByRef phToken As Integer) As IntegerEnd Function Shared Function _ CloseHandle(ByVal hObject As Integer) As IntegerEnd Function' 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'' IMPORTANT: works only under Windows NT and 2000Function CheckWindowsUser(ByVal userName As String, ByVal password As String, _ Optional ByVal domain As String = "") As Boolean Const LOGON32_PROVIDER_DEFAULT = 0& Const LOGON32_LOGON_NETWORK = 3& Dim hToken, ret As Integer ' provide a default for the Domain name 'If domain.Length = 0 Then domain = Nothing ' 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 IfEnd Function