none
Obtener datos de usuario de active directory RRS feed

  • Pregunta

  • Buenas noches,

    Estoy desarrollando una aplicacion en la cual se valida el usuario contra el AD y me gustaria obtener el nombre, area y cargo del usuario los cuales seran mostrados en un formulario de bienvenida sobre un toolstripmenu, tengo implementada la validacion del usuario de la siguiente manera:

     Public Function ValidateADUser(ByVal Username As String, ByVal Password As String) As Boolean
            'Find valid user in Active Directory
            Dim Success As Boolean = False
            Dim Entry As New System.DirectoryServices.DirectoryEntry("LDAP://" & "MPF.com.pe", Username, Password, DirectoryServices.AuthenticationTypes.Secure)
            Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry)
            Searcher.SearchScope = DirectoryServices.SearchScope.OneLevel
            Try
                Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne
                Success = Not (Results Is Nothing)
            Catch ex As Exception
                Success = False
            End Try
            Return Success
        End Function

    y la funcion con la que obtengo el nombre del usuario es la siguiente:

    Public Function Nombre(ByVal usuario As String) As Boolean
            Dim Resultado As Boolean = False
            Dim ldapFilter As String = "(displayName=" & usuario & ")"
            Dim Entry As New System.DirectoryServices.DirectoryEntry("LDAP://" & "MPF.com.pe")
            Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry, ldapFilter)
            Dim Result As System.DirectoryServices.SearchResult = Searcher.FindOne

            For Each result In Searcher.FindAll()
                Dim de As DirectoryEntry = Result.GetDirectoryEntry()
                usuario = de.Properties("samAccountName").Value.ToString
                Return True
            Next
            Return Resultado
        End Function

    pero me devuelve el siguiente error: Error de inicio de sesión: nombre de usuario desconocido o contraseña incorrecta en la linea 

    "Dim Result As System.DirectoryServices.SearchResult = Searcher.FindOne"

    El boton ingresar tiene lo siguiente:

    If ValidateADUser(txtUsuario.Text, txtContrasena.Text) = True Then
                MsgBox("Bienvenido usuario:" + "" + txtUsuario.Text, MsgBoxStyle.Information)
                FrmBienvenida.Show()
                FrmBienvenida.ToolStripTextBox1.Text = Nombre(txtUsuario.Text)
                Me.Hide()

            Else
                MsgBox("Ha habido un error de autenticación, compruebe los datos.", MsgBoxStyle.Exclamation)
            End If

    Alguna idea del error o que parte esta mal? el usuario y contraseña son correctos porque al quitar esa funcion logra autenticar al usuario.


    De antemano, gracias.

    domingo, 10 de marzo de 2013 3:30

Respuestas

Todas las respuestas

  • me gustaria obtener el nombre, area y cargo del usuario

    pero esa infromacion esta definida en el active directory ?


    valida mas que nada alli en el link cuales son als queries que realiza a active redirectory para obtener la informacion, ya que veo que no usa ninguna autenticacion, no requiere usuario o password solo toma los datos

    Convert C# to VB.NET

    Code Converter

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Omar Ortiz lunes, 11 de marzo de 2013 16:38
    • Marcado como respuesta Omar Ortiz martes, 16 de julio de 2013 23:06
    domingo, 10 de marzo de 2013 4:42
  • Claro se que esa información se puede obtener desde el directorio activo, a lo que iba era al error arrojado en la funcion que estaba armando, en fin, revisare el link proporcionado y te comentare como queda el asunto, gracias de antemano.
    lunes, 11 de marzo de 2013 12:57