Windows Win32Segurança & tokensadvapi32.dll
LogonUserW
Autentica um usuário com nome/senha (ou outras credenciais) e retorna um token de acesso para ele.
Descrição
Base para implementar autenticação customizada (ex.: um servidor que precisa validar credenciais de domínio) fora do fluxo padrão de login interativo do Windows.
Header:
winbase.hDLL: advapi32.dllAtenção
Exige o privilégio SeTcbPrivilege (ou execução como serviço com as permissões adequadas) para a maioria dos tipos de logon — não é uma API livremente utilizável por qualquer processo.
Assinatura
BOOL LogonUserW(
LPCWSTR lpszUsername,
LPCWSTR lpszDomain,
LPCWSTR lpszPassword,
DWORD dwLogonType,
DWORD dwLogonProvider,
PHANDLE phToken
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| lpszUsername | LPCWSTR | Nome de usuário. |
| lpszDomain | LPCWSTR | Domínio, ou NULL/"." para a máquina local. |
| lpszPassword | LPCWSTR | Senha em texto plano. |
| dwLogonType | DWORD | LOGON32_LOGON_INTERACTIVE, LOGON32_LOGON_NETWORK, LOGON32_LOGON_SERVICE, etc. |
| dwLogonProvider | DWORD | LOGON32_PROVIDER_DEFAULT ou um provedor específico. |
| phToken | PHANDLE | Recebe o token de acesso do usuário autenticado. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_LOGON_FAILURE(1326)
- Nome de usuário ou senha incorretos.
- ERROR_ACCOUNT_RESTRICTION(1327)
- Restrição de conta impede o logon (ex.: conta desabilitada ou fora do horário permitido).