autenticação no active directory utilizando login windows

29/03/2016

3

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.
Responder

Posts

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

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

[url]http://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
Conferiu os outros links?
Responder
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
Amigo como faço para usar essa função?
Responder
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
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