Кто-нибудь знает, как бы я сделал 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();