autenticação no active directory utilizando login windows

29/03/2016

0

Bom dia pessoal, minha dúvida é o seguinte, preciso que meu sistema em delphi faça autenticação no Active directory utilizando o próprio login do windows e não precise digitar login e senha novamente. abrçs.
Bruno Silva

Bruno Silva

Responder

Posts

29/03/2016

Rodrigo Oliveira

Bom dia Bruno, olha, achei um post da devmedia e um artigo.

[url]https://www.devmedia.com.br/forum/aplicacao-em-delphi-com-active-directory/447841[/url]

[url]https://www.devmedia.com.br/criar-usuario-no-active-directory/6597[/url]

de quebra achei um código:


function LoginAD(pDominio, pUsuario, pSenha: String): Boolean; 
var 
  Adc_Login: TADOConnection; 
  Qry_Login: TADOQuery; 
begin            
  if Trim(pSenha) <> '' then 
  begin 
    Adc_Login:= TADOConnection.Create(Application); 
    Qry_Login:= TADOQuery.Create(Adc_Login); 
    Qry_Login.Connection := Adc_Login; 

    Adc_Login.LoginPrompt := False; 
    Adc_Login.KeepConnection := False; 
    Adc_Login.Mode := cmRead; 
    Adc_Login.Provider := 'AdsDSOObject'; 

    Result := True; 
    try 
      //Passa o Dominio, usuário e senha do LDAP na string de conexão... 
      Qry_Login.SQL.Text := 
        ' SELECT' + 
        '   cn' + 
        ' FROM' + 
        '   %Dominio%' + 
        ' WHERE objectClass = ''cn'' '; 
      Qry_Login.CursorType := ctStatic; 

      Qry_Login.Close; 


      Adc_Login.ConnectionString := 
        'Provider=ADsDSOObject;Encrypt Password=True;Data Source=LDAP://' + pDominio + 
        ';User ID =' + pUsuario + 
        ';Password=' + pSenha + 
        ';Mode=Read'; 
      Adc_Login.Open; 
      Adc_Login.Connected := True; 

      try 
        with (Qry_Login) do 
        begin 
          Close; 
          SQL.Text := StringReplace(SQL.Text, '%Dominio%', QuotedStr('LDAP://'+pDominio), [rfReplaceAll]); 
          Mensagem(SQL.Text); 
          Open; 
        end; 
      except 
        Result := False; 
      end; 
    finally 
      FreeAndNil(Qry_Login); 
      FreeAndNil(Adc_Login); 
    end; 
  end 
    else 
      Result := False; 
end;

Responder

29/03/2016

Bruno Silva

bom dia Rodrigo, pelo que vi no código ainda é necessário digitar usuario e senha para logar no sistema delphi e no caso o que eu preciso é que quando o usuario logar no windows e depois tentar abrir o sistema em delphi, este pega o usuario e senha do windows e autentica no active directory sem a necessidade de digitar usuario e senha para logar no sistema em delphi. Arbçs
Responder

29/03/2016

Rodrigo Oliveira

Conferiu os outros links?
Responder

29/03/2016

Rodrigo Oliveira

Bruno...
Responder

01/04/2016

Bruno Silva

Oi bom dia Rodrigo,
me desculpe vi agora a resposta,
vi sim os links vou tentar levantar mais informações aqui para ver se vai dar certo.
Obrigado.
Responder

30/07/2016

Alisson Conceição

Amigo como faço para usar essa função?
Responder

01/08/2016

Wasley Fagundes

Rodrigo, tenho um sistema meu que uso autenticação pelo AD, pelo que sei vc tem duas opções. Ou digita usuário e senha, ou apenas pega o login do usuário logado. Em tese se ele está loga esta ativo e autenticado. Mas acho que pegar a senha não da. Pois o que o sistema faz é mandar uma mensagem para o AD com o usuário e a senha e o AD responde se é valido ou não.
Responder

01/08/2016

Wasley Fagundes

Rodrigo, tenho um sistema meu que uso autenticação pelo AD, pelo que sei vc tem duas opções. Ou digita usuário e senha, ou apenas pega o login do usuário logado. Em tese se ele está loga esta ativo e autenticado. Mas acho que pegar a senha não da. Pois o que o sistema faz é mandar uma mensagem para o AD com o usuário e a senha e o AD responde se é valido ou não.
Responder

Assista grátis a nossa aula inaugural

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