#define LOGON32_PROVIDER_DEFAULT 0 #define LOGON32_LOGON_NETWORK 3 ? validatepassword(,,InputBox('Enter password')) function ValidatePassword lparameters tcDomain, tcUser, tcPassword local lnToken, llResult, lcUser, lcDomain, lcPassword lcDomain = Iif(Vartype(tcDomain) # 'C' or Empty(tcDomain), Getenv('UserDomain'), Alltrim(tcDomain)) lcUser = Iif(Vartype(tcUser) # 'C' or Empty(tcUser), Getenv('UserName'), Alltrim(tcUser)) lcPassword = Iif(Vartype(tcPassword) # 'C', '', tcPassword) declare LogonUser in AdvAPI32 ; String lpszUsername, ; String lpszDomain, ; String lpszPassword, ; Integer dwLogonType, ; Integer dwLogonProvider, ; Long @ phToken ; declare CloseHandle in Kernel32 ; integer hObject declare SetLastError in win32api ; integer dwErrCode declare integer GetLastError in WIN32API SetLastError(0) lnToken = 0 llResult = LogonUser(lcUser, lcDomain, lcPassword, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, @lnToken) if llResult and lnToken # 0 CloseHandle(lnToken) llResult = .T. else llResult = .F. * Do something with GetLastError() endif return llResult