none
Usuario e mail do LDAP - Uso VS2003 RRS feed

  • Pergunta

  • Private Sub email()
            Dim t As New DataTable("Usuarios")
            t.Columns.Add("NOME", GetType(String))
            t.Columns.Add("E-MAIL", GetType(String))
    
            Dim root As DirectoryEntry = New DirectoryEntry("LDAP://10.8.5.250")
            Dim busca As New DirectorySearcher(root)
            busca.Filter = "(sAMAccountName=jfelix)"
            Dim oResults As SearchResultCollection
            Dim resultado As SearchResult
             
            oResults = busca.FindAll
           
            For Each resultado In oResults
                resultado = busca.FindOne
                Dim dr As DataRow = t.NewRow()
    
                dr.Item("NOME") = resultado.Properties("name")(0)
    
                dr.Item("E-MAIL") = resultado.Properties("mail")(0)
    
                t.Rows.Add(dr)
            Next
            DataGrid1.DataSource = t
        End Sub
    Olá pessoal

    Estou precisando pegar os usuarios e email via ldap, fiz o codigo acima mas ele só traz um usuario especifico que eu colocar no campo de pesquisa ( busca.Filter = "(sAMAccountName=jfelix)"), gostaria de trazer todos da minha OU.
    Julierme Felix - Aprendiz
    quinta-feira, 18 de fevereiro de 2010 09:29

Respostas

  • Olá,

    Bom primeiramente se estiver usando algum framerwork que da suporte ao Linq, recomendo usar este cara, facilita muito : http://www.codeplex.com/LINQtoAD (veja os exemplos do uso na documentação, tem um que é oq precisa).

    Senão puder usar o Linq, de uma olhada -> http://www.willasrari.com/blog/query-active-directory-users-using-c/000133.aspx


    Abs,


    Nelson Borges - http://nelsonborgesjr.spaces.live.com/blog/ "Ao infinito e além.. "
    • Marcado como Resposta Julierme Felix quarta-feira, 17 de março de 2010 12:39
    sábado, 27 de fevereiro de 2010 21:42
  • Consegui resolver....

    veja como ficou o códgio

     Private Sub email()
            Dim t As New DataTable("Usuarios")
            t.Columns.Add("NOME", GetType(String))
            t.Columns.Add("E-MAIL", GetType(String))
    
            Dim root As DirectoryEntry = New DirectoryEntry("LDAP://OU=Rede Administrativa,OU=Usuários,OU=Colégio,OU=Colatina,OU=ES,DC=pmbcn,DC=intranet")
            Dim busca As New DirectorySearcher(root)
            Dim resultado As SearchResult
    
            busca.Filter = "(objectClass=user)"
    
            For Each resultado In busca.FindAll
    
                Dim dr As DataRow = t.NewRow()
    
                dr.Item("NOME") = resultado.Properties("Name")(0)
    
                dr.Item("E-MAIL") = resultado.Properties("mail")(0)
    
                t.Rows.Add(dr)
            Next
    
            DataGrid1.DataSource = t
        End Sub

    Julierme Felix - Aprendiz
    quarta-feira, 17 de março de 2010 12:37

Todas as Respostas

  • Olá,

    Bom primeiramente se estiver usando algum framerwork que da suporte ao Linq, recomendo usar este cara, facilita muito : http://www.codeplex.com/LINQtoAD (veja os exemplos do uso na documentação, tem um que é oq precisa).

    Senão puder usar o Linq, de uma olhada -> http://www.willasrari.com/blog/query-active-directory-users-using-c/000133.aspx


    Abs,


    Nelson Borges - http://nelsonborgesjr.spaces.live.com/blog/ "Ao infinito e além.. "
    • Marcado como Resposta Julierme Felix quarta-feira, 17 de março de 2010 12:39
    sábado, 27 de fevereiro de 2010 21:42
  • Julierme,

    Alguma novidade quanto a essa sua dúvida?
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quarta-feira, 17 de março de 2010 12:26
    Moderador
  • Consegui resolver....

    veja como ficou o códgio

     Private Sub email()
            Dim t As New DataTable("Usuarios")
            t.Columns.Add("NOME", GetType(String))
            t.Columns.Add("E-MAIL", GetType(String))
    
            Dim root As DirectoryEntry = New DirectoryEntry("LDAP://OU=Rede Administrativa,OU=Usuários,OU=Colégio,OU=Colatina,OU=ES,DC=pmbcn,DC=intranet")
            Dim busca As New DirectorySearcher(root)
            Dim resultado As SearchResult
    
            busca.Filter = "(objectClass=user)"
    
            For Each resultado In busca.FindAll
    
                Dim dr As DataRow = t.NewRow()
    
                dr.Item("NOME") = resultado.Properties("Name")(0)
    
                dr.Item("E-MAIL") = resultado.Properties("mail")(0)
    
                t.Rows.Add(dr)
            Next
    
            DataGrid1.DataSource = t
        End Sub

    Julierme Felix - Aprendiz
    quarta-feira, 17 de março de 2010 12:37