Autenticação de usuário no Active Directory

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (6)  (0)

 

Acontece muito nas empresas várias situações onde o desenvolvedor é desafiado a integrar uma aplicação com algum serviço de terceiro. Um dos pontos mais comuns é a integração de login. A utilização de um único login gera facilidade para o usuário final e traz uma aparência de unicidade de sistemas.

 

Vamos falar então de realizar autenticações de usuário no Active Directory.

 

O projeto

Crie um projeto de web site e adicione uma classe chamada AuthoAD.

Na página default adicione dois Textbox e um Button. Altere a propriedade Id de um Textbox para txtUser e o outro txtSenha, esse segundo precisa ter a propriedade TextMode para Password.

 

A classe de autenticação

Abaixo a Listagem 01 mostra a implementação da classe.

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient;

using System.Data;

using System.DirectoryServices;

 

namespace ActiveDirectory

{

    public class AuthoAD

    {

        public string Autentica(string IpServer, string User, string Senha)

        {

            string retorno = string.Empty;

            try

            {

                DirectoryEntry objAD = new DirectoryEntry("LDAP://" + IpServer, User, Senha);

                retorno = objAD.Name;

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

            return retorno;

        }

    }

}

Listagem 01 – Classe de autenticação no Active Directory.

 

Perceba que o último Namespace referenciado é System.DirectoryServices, e para isso você vai precisar adicionar uma referência de projeto ao componente. Clique com o botão direto no projeto e depois em Add New Reference.

 

A Figura 01 abaixo mostra a tela de Add reference

 

dsscauadfig01.jpg 

Figura 01 – Classe de autenticação no Active Directory

 

A classe é bastante simples. A única coisa que queremos é saber se o usuário e a senha autenticam um usuário no Active Directory ou não.

 

No método Autentica instanciamos um objAD sendo do tipo DirectoryEntry, classe responsável por pesquisa no Active Directory.

 

A lógica é seguinte: vamos instanciar essa classe passando o Ip do servidor de Domínio, o usuário e a senha para pesquisa qual o nome do domínio que aquele usuário está inserido. A própria classe DirectoryEntry retorna um Exception caso a autenticação não ocorra com sucesso. O que vamos fazer é apenas tratar o erro.

 

Caso não ocorra erro, retornamos o nome do domínio através propriedade Name.

 

A escolha de retornar o nome do domínio foi totalmente aleatória. Eu poderia utilizar outras propriedade ou utilizar a classe objeto

 

CodeBehind da página default

 

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using ActiveDirectory;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void btLogar_Click(object sender, EventArgs e)

    {

        AuthoAD objAD = new AuthoAD();

 

        try

        {

            Response.Write(objAD.Autentica("192.168.0.2", txtUser.Text, txtSenha.Text) + "<br>");

        }

        catch (Exception ex)

        {

            Response.Write(ex.Message);

        }

    }

}

Listagem 02 - Codebehind da página.

 

No código vemos que é feito uma simples chamada ao método de Autentica do objeto instanciado a partir da classe AuthoAD.

 

Na Figura 02 segue um exemplo da mensagem de erro quando a senha do usuário está incorreta.

 

Na Figura 03 é um exemplo quando o acesso ocorre corretamente e recebemos o retorno (Nome do domínio).

 

dsscauadfig02.jpg 

Figura 02 – Acesso negado

 

dsscauadfig03.jpg 

Figura 03 – Acesso permitindo

 

Até a próxima.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?