Principales respuestas
Obtener datos de usuario de active directory

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 Functiony 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 Functionpero 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 IfAlguna 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.
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
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
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
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
-