quinta-feira, 8 de outubro de 2009

Acessando o Active Directory (LDAP) com ASP.Net - Parte 1 - Consultando dados de um usuário

Fala, galera!!

Sejam bem-vindos!

Não sei com que freqüência estarei atualizando o blog. Por isso, vou tentar iniciar com o pé direito publicando um código de acesso ao Active Directory (LDAP).

É muito comum criarmos aplicações que façam uso da estrutura do Active Directory para autenticar usuários ou validar regras de acesso. Para isso, o .Net fornece classes para manipulação de dados dentro de bases LDAP (Lightweight Directory Access Protocol

Segue um exemplo de como consultar dados de um usuário direto de uma base de dados LDAP:

        Dim de As New DirectoryEntry("LDAP://10.190.1.25") 'Endereço do active Directory
        Dim busca As New DirectorySearcher(de)
        Dim resultado As SearchResult
        busca.Filter = "(sAMAccountName=RafaelMaia)"
        resultado = busca.FindOne()
        Response.Write results.Properties("mail")(0)


O código acima irá consultar os dados do usuário RafaelMaia e escrever na tela o email do mesmo.
Pode-se acessar qualquer informação cadastrada no perfil do usuário no Active Directory.
Desde o Nome até telefones de contato. Só não se pode recuperar a senha do usuário, por razões óbvias.

É importante importar o namespace System.DirectoryServices.

Imports System.DirectoryServices


No link abaixo você pode visualizar uma lista completa de todas as propriedades do Active Directory.
http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

A seguir um exemplo de como validar o login e senha de um usuário diretamente no AD.


Dim de As New DirectoryEntry(Nothing, "dominio\RafaelMaia", "senha_do_usuario")
        Try
            Dim o = de.NativeObject
            Dim ds As New DirectorySearcher(de)
            ds.Filter = "samaccountname=RafaelMaia"
            ds.PropertiesToLoad.Add("cn")
            Dim sr As SearchResult
            sr = ds.FindOne()
            If IsNothing(sr) Then Throw New Exception()
            Response.write("Login válido!")
        Catch ex As Exception
            Response.write("Login e/ou senha  inválidos!")
        End Try

É isso ae, galera!!
Há muitas coisas que se pode fazer em uma base LDAP. Como: criar usuário, alterar dados, ativar ou desativar contas, etc.

Por enquanto, vamos ficando por aqui.

Um abraço e até a próxima!

Um comentário: