Login do Windows na Aplicacao
28/06/2004
0
Tem como ao clicar num botao na minha aplicacao, eu chamar o login do windows e se tudo der certo (senha/usuario), eu saber o user (so o user nao preciso da senha).
If SenhadoWindows(usuario) Then Begin
ShowMessage(´usuario igual: ´ + usuario)
...
...
...
End;
Obrigado,
att.
Nogueira
Kleberns
Posts
29/06/2004
Kleberns
Postei uma mensagem como ´LOGIN DO WINDOWS NA APLICACAO´ e nao me responderam, se alguem puder me ajudar, agradeco
att.
Nogueira
02/07/2004
Kleberns
Ta dificil...nao recebo a resposta disso, sera que alguem do grupo pode me ajudar ?
att.
Nogueira
03/07/2004
Aroldo Zanela
Veja se este exemplo ajuda:
var ComputerName: array[1..20] of Char; UserName: array[1..512] of Char; arrSize: DWord; begin arrSize := SizeOf(ComputerName); GetComputerName(@ComputerName, arrSize); arrSize := SizeOf(UserName); GetUserName(@UserName, arrSize); ShowMessage(´Computer name is: ´ + ComputerName + 1310 + ´User name is: ´ + UserName) end;
06/07/2004
Kleberns
Primeiramente, obrigado pela dica, mas o que eu quero de verdade e o seguinte:
O usuario entrou no meu aplicativo, ele solicita usuario e senha (ai e que entra o login do windows que eu quero), o windows me retorna ok e o usuario (ai entra a funcao que vc me passou) e nao ok se ele clicou em cancelar ou deu um esc na tela.
PS: Eu queria isso, pois a senha do sistema um ta passando para o outro e a senha do windows ninguem passa pra ninguem, entendeu ?
att.
Nogueira
06/07/2004
Elciodramos
Quem me passou foi o Eugenio Reis a algum tempo atraz
function ImpersonateUser( varLogin, varPassword : String ): Boolean; var lpBuffer:array[ 0..63 ] of char; nSize: DWord; phToken: THandle; lpMsgBuf, login, Senha, Dominio : array [ 0..63 ] of Char ; Rede : TNetResource; begin nSize:=64; fillchar( Dominio, nSize, 0 ); fillchar( Login, nSize, 0 ); fillchar( Senha, nSize, 0 ); fillchar( lpMsgBuf,nSize, 0 ); StrpCopy( Login, varLogin ); StrpCopy( Senha, varPassword ); StrpCopy( dominio, ConstDominio ); If LogonUser(Login, Dominio, Senha, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, phToken ) then begin try ImpersonateLoggedOnUser( phToken ); // Sua aplicação agora assumi a identidade do usuário ´X´ GetUserName( lpBuffer, nSize); // Se consegue enxergar o nome do usuário ´X´ aqui, entao deu certo Result := lpBuffer = varLogin; if Result then DMGeral.GravaSenha( varLogin, varPassword ); finally RevertToSelf; // Volta para o usuário original end; end else begin Mensagens(MBOK,ErroWindows( GetLastError()) + #13´Dados Invalidos !´); Result := False; end; // Voce está construindo um cavalo de tróia? // Eugenio Reis // MCSD, MCSE+I, MCDBA, MCT, OCP, Delphi Certified Consultant end;
Clique aqui para fazer login e interagir na Comunidade :)