我已经开发了基于C / C ++的Win64服务,该服务针对Active Directory中存在的用户执行Windows身份验证。该服务已安装在本地工厂的服务器PC上。
现在,客户端希望对位于客户端总部的服务器上的主Active Directory执行此身份验证。客户的工厂和总公司在地理位置上相互断开(大约500公里)。
有关如何使用我的服务通过Internet对主活动目录进行用户身份验证的任何建议。
当前代码:
HANDLE token;
BOOL logonReturnVal;
trim(userName);
trim(password);
trim(domain);
if(domain.length() == 0)
domain = ".";
if(password.length() == 0)
logonReturnVal = LogonUserA(userName.c_str(), domain.c_str(), NULL, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &token);
else
logonReturnVal = LogonUserA(userName.c_str(), domain.c_str(), password.c_str(), LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &token);
if(!logonReturnVal)
{
returnMessage = Error::GetLastErrorAsString();
return false;
}
else
{
returnMessage = Protocol::authenticateSuccessProtocolStr;
return true;
}