>> loUser = GETOBJECT("WinNT://" + tDomain + "/" + ALLTRIM(tuser) + ",user") >> try >> loUser.ChangePassword (tpassword,tpassword) >> catch >> llPasswordVerified = .F. >> endtry >> >> RetURN llPasswordVerified >>>>
>#define LOGON32_PROVIDER_DEFAULT 0 >#define LOGON32_LOGON_NETWORK 3 > >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 Username, ; > String Domain, ; > String Password, ; > Integer LogonType, ; > Integer LogonProvider, ; > Long @ Token ; > >declare CloseHandle in Kernel32 ; > integer hObject > >declare SetLastError in win32api ; > integer ErrCode > >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 >