Asunto: ¿Cómo validar en servidor LDAP con Visual Basci .Net 2010?
Esstoy desarrollando una aplicación de Facturación, Contabilidad y Recursos Humanos, uso Microsoft Visual Basic .Net de la suite de desarrollo Microsoft Visual Studio 2010. Necesito que la validación (inicio de sesión o login) de dicha aplicación sea contra el servidor LDAP (Active Directory) que tenemos. El servidor tiene un dominio de Winodws y Active Directory con Microsoft Windows Server 2008.
¿Cómo puedo programar esta validación en el dominio desde mi aplicación Visual Basic?
Publicado:
Lun Feb 14, 2011 6:07 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: ¿Cómo validar en servidor LDAP con Visual Basci .Net 201
Anuncios
varios escribió:
Esstoy desarrollando una aplicación de Facturación, Contabilidad y Recursos Humanos, uso Microsoft Visual Basic .Net de la suite de desarrollo Microsoft Visual Studio 2010. Necesito que la validación (inicio de sesión o login) de dicha aplicación sea contra el servidor LDAP (Active Directory) que tenemos. El servidor tiene un dominio de Winodws y Active Directory con Microsoft Windows Server 2008.
¿Cómo puedo programar esta validación en el dominio desde mi aplicación Visual Basic?
Puedes usar la siguiente función VB.Net (Visual Basic .Net):
Código:
'Autenticar usuario en servidor de LDAP
Public Function autenticarUsuarioLDAP(
ByVal path As String,
ByVal dominio As String,
ByVal usuario As String,
ByVal contrasena As String) As Boolean
Dim entry As DirectoryEntry =
New DirectoryEntry(path & dominio,
dominio & "\" & usuario,
contrasena)
Try
'creamos un objeto nativo pra forzar la autenticación
Dim obj As Object = entry.NativeObject
Dim search As DirectorySearcher = New DirectorySearcher(entry)
search.Filter = "(SAMAccountName=" & usuario & ")"
search.PropertiesToLoad.Add("cn")
Dim result As SearchResult = search.FindOne()
If (result Is Nothing) Then
Return False
End If
'muestra el path del usuario en el directorio
txtPathCompleto.Text = result.Path
txtAtributoFiltro.Text = CType(result.Properties("cn")(0), String)
Catch ex As Exception
Return False
MsgBox("Error al autenticar usuario: " & ex.Message,
MsgBoxStyle.Exclamation)
End Try
Return True
End Function
Un ejemplo de uso:
Código:
Private Sub btValidar_Click(
ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btValidar.Click
If autenticarUsuarioLDAP(txtPath.Text,
txtDominio.Text,
txtUsuario.Text,
txtContrasena.Text) = True Then
MsgBox("Usuario validado correctamente en dominio " &
txtDominio.Text, MsgBoxStyle.Information)
Else
MsgBox("Ha habido un error de autenticación, compruebe los datos.",
MsgBoxStyle.Exclamation)
End If
End Sub
Teniendo en cuenta que hay que añadir la siguiente línea de código al principio del formulario:
Código:
Imports System.DirectoryServices
En el ejemplo usamos txtDominio.Text, txtPath.Text, txtUsuario.Text, txtContrasena.Text que son cuadros de texto (TextBox) para el dominio en el que validaremos, el path (normalmente "LDAP://"), el usuario y la contraseña respectivamente.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A