#include <windows.h>
#include <iostream>
#ifdef _WIN32
#include <codecvt>
#include <string>
static std::wstring string2wstring(std::string srcStr)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> cvs6;
return cvs6.from_bytes(srcStr);
}
static std::string wstring2string(std::wstring srcWStr)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> cvs6;
return cvs6.to_bytes(srcWStr);
}
#endif
bool winLogonUser(std::string user, std::string domain, std::string password)
{
HANDLE hUser;
if (!LogonUserW(string2wstring(user).c_str(), string2wstring(domain).c_str(), string2wstring(password).c_str(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hUser))
{
std::cout << "win logon fail \n";
return false;
}
std::cout << "win logon successful \n";
return true;
}
//win 登录验证 用户名 域名 密码
int main1()
{
winLogonUser("user_nmae", "domain_name", "passwd");
system("pause");
return 0;
}