>#define LOGON32_PROVIDER_DEFAULT 0 >#define LOGON32_LOGON_NETWORK 3 > >if not ValidatePassword('ASDFDOMAIN', 'Ryan', 'ASDF123') > quit >endif > > >function ValidatePassword(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. > messagebox("Correct Password") >else > llResult = .F. > * Do something with GetLastError()\ > messagebox("Wrong Passowrd") >endif > >return llResult >>