Fonte: www.activedelphi.com.br
O Active Directory é um serviço da Microsoft, lançado no Windows 2000, que utiliza o protocolo LDAP para armazenar informações de usuários em uma determinada rede. Com ele, o administrador de redes tem todas as informações necessárias para controlar cada usuário da rede, como: nome, login e senha, bem como a criação de políticas de grupos de usuários.
Atualmente, há uma grande necessidade de se ter um login unificado dentro de uma organização, para que o usuário não tenha que ficar "decorando" login e senha de cada sistema e para que os desenvolvedores e o suporte técnico ganhem tempo, uma vez que não haverá mais tantos cadastros espalhados pela empresa. Sendo assim, vamos demonstrar neste artigo como integrar o login de sua aplicação no Active Directory.
Configure os componentes da seguinte forma:
Atualmente, há uma grande necessidade de se ter um login unificado dentro de uma organização, para que o usuário não tenha que ficar "decorando" login e senha de cada sistema e para que os desenvolvedores e o suporte técnico ganhem tempo, uma vez que não haverá mais tantos cadastros espalhados pela empresa. Sendo assim, vamos demonstrar neste artigo como integrar o login de sua aplicação no Active Directory.
Configure os componentes da seguinte forma:
Componente | Nome | Valor |
TLabel | lblLogin | LOGIN |
TLabel | lblUsuario | Usuário: |
TLabel | lblSenha | Senha: |
TEdit | edtUsuario | |
TEdit | edtSenha | |
TButton | btnLogin | Entrar |
Primeiramente, vamos criar um novo projeto: File/New/VCL Forms Application - Delphi. Neste exemplo, criei uma tela básica de Login, como segue:
Configure os componentes da seguinte forma:
O Active Directory Service Interfaces (ADSI) nos dá uma interface COM para interagirmos com o Active Directory, portanto, vamos adicionar a unit ActiveX na uses list para utilizarmos esta interface.
Para que possamos validar o login e a senha do usuário, necessitamos utilizar uma interface requerida em objetos ADSI para capturar algumas propriedades e um método para comparar estas informações com os objetos do Active Directory. Para tanto, adicionemos em nossa aplicação as units ActiveDs_Tlb e Adshlp, as quais se encontram no final deste artigo, juntamente com o código fonte deste projeto-exemplo, não se esquecendo de adicioná-las também à aplicação.
Configure o evento onClick do btnLogin, como segue:
procedure TfrmLogin.btnLoginClick(Sender: TObject);
var
adObject: IADs;
begin
///Inicialização do COM
CoInitialize(nil);
try
ADsOpenObject('://',
LowerCase(edtUsuario.Text),
edtSenha.Text,
ADS_SECURE_AUTHENTICATION,
IADs,
adObject);
ShowMessage('Login válido!');
except
on e: EOleException do
begin
if Pos('Falha de logon', e.Message) > 0 then
ShowMessage('Login inválido!')
else
ShowMessage(e.Message);
end;
end;
CoUninitialize;
end;
Como podemos ver, inicializamos o COM e depois utilizamos um método para comparação de nosso login e senha com os objetos do Active Directory. Neste método, passamos o provider WinNT ou LDAP, o nome do domínio da rede que estamos conectados, o login e senha que o usuário digitou, a forma de autenticação ao Active Directory, a interface e um objeto IADs que criamos localmente. Se houver erro nesta comparação, significa que o login e senha digitados não foram encontrados em nenhum objeto do Active Directory ou há algum problema na comunicação ou conectividade da rede.
Clique aqui para baixar o código fonte do exemplo (323 KB)
Configure os componentes da seguinte forma:
O Active Directory Service Interfaces (ADSI) nos dá uma interface COM para interagirmos com o Active Directory, portanto, vamos adicionar a unit ActiveX na uses list para utilizarmos esta interface.
Para que possamos validar o login e a senha do usuário, necessitamos utilizar uma interface requerida em objetos ADSI para capturar algumas propriedades e um método para comparar estas informações com os objetos do Active Directory. Para tanto, adicionemos em nossa aplicação as units ActiveDs_Tlb e Adshlp, as quais se encontram no final deste artigo, juntamente com o código fonte deste projeto-exemplo, não se esquecendo de adicioná-las também à aplicação.
Configure o evento onClick do btnLogin, como segue:
procedure TfrmLogin.btnLoginClick(Sender: TObject);
var
adObject: IADs;
begin
///Inicialização do COM
CoInitialize(nil);
try
ADsOpenObject('
LowerCase(edtUsuario.Text),
edtSenha.Text,
ADS_SECURE_AUTHENTICATION,
IADs,
adObject);
ShowMessage('Login válido!');
except
on e: EOleException do
begin
if Pos('Falha de logon', e.Message) > 0 then
ShowMessage('Login inválido!')
else
ShowMessage(e.Message);
end;
end;
CoUninitialize;
end;
Como podemos ver, inicializamos o COM e depois utilizamos um método para comparação de nosso login e senha com os objetos do Active Directory. Neste método, passamos o provider WinNT ou LDAP, o nome do domínio da rede que estamos conectados, o login e senha que o usuário digitou, a forma de autenticação ao Active Directory, a interface e um objeto IADs que criamos localmente. Se houver erro nesta comparação, significa que o login e senha digitados não foram encontrados em nenhum objeto do Active Directory ou há algum problema na comunicação ou conectividade da rede.
Clique aqui para baixar o código fonte do exemplo (323 KB)
Nenhum comentário:
Postar um comentário