Login do Windows na Aplicacao

28/06/2004

0

Olá Pessoal !

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

Kleberns

Responder

Posts

29/06/2004

Kleberns

Olá Pessoal !

Postei uma mensagem como ´LOGIN DO WINDOWS NA APLICACAO´ e nao me responderam, se alguem puder me ajudar, agradeco


att.
Nogueira


Responder

02/07/2004

Kleberns

Ola Pessoal !

Ta dificil...nao recebo a resposta disso, sera que alguem do grupo pode me ajudar ?

att.
Nogueira


Responder

03/07/2004

Aroldo Zanela

Colega,

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;



Responder

06/07/2004

Kleberns

Aroldo,

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


Responder

06/07/2004

Elciodramos

Teste esta funcao abaixo
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;



Responder

14/07/2004

Kleberns

Vou dar uma olhada,

Brigadao

att.
Nogueira


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar