任何人都知道我會如何做一個手動netlogon或任何其他方式來驗證遠程域上的用戶?我需要測試身份驗證。手冊netlogon
現在我們正在使用模擬和調用任意函數。問題是將會登錄的任意winapi函數。問題是有些域允許通過空會話調用該函數,從而導致誤報。
這樣做的唯一目標是針對本地計算機未添加到的遠程域獲得可靠,快速的身份驗證,所以我不會否認另一種方法。
這是我們從提交MSDN票據獲得的解決方案。
if(!LogonUser(username.c_str(), domain.c_str(), password.c_str(), LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &token))
{
debug->DebugMessage(Error::GetErrorMessageW(GetLastError()));
CloseHandle(token);
RevertToSelf();
return false;
}
if(!ImpersonateLoggedOnUser(token))
{
debug->DebugMessage(Error::GetErrorMessageW(GetLastError()));
CloseHandle(token);
RevertToSelf();
return false;
}
...
int err = NetUserModalsGet ....
if (err != ERROR_SUCCESS) logged_on = false;
RevertToSelf();
請解釋您正在使用的一些術語。 「手動」網絡登錄?你是什麼意思?另外,什麼是誤報,什麼是空會話? –
空會話是不需要身份驗證的登錄。 – Bluebaron
我只想要一個netlogon而不調用一個需要netlogon的winapi函數。 – Bluebaron