quinta-feira, 18 de março de 2010

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

Autor: Rafael Maia
Fonte:http://rafaelfranklinmaia.blogspot.com/search/label/Active%20Directory
É 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

Por agora é tudo

0 comentários :

Enviar um comentário