Para obtener los grupos de red a los que pertenece un usuario de active directory, debemos hacer uso del namespace System.DirectoryServices, esto con el fin de usar los objetos DirectoryEntry y DirectorySearch, de esta manera podremos acceder a la propiedad memberOf.
Imagen 1: Agregar referencia. (fuente propia)
Empezamos armando una interfaz simple en la cuál tenemos que ingresar la ruta del active directory, el dominio al que pertenece el usuario, el usuario de active directory y su clave; estos datos son necesarios para poder realizar busquedas dentro del Active Directory.
Primero tenemos que obtener el cn asignado al usuario de AD, la función Validar permite obtener ese dato, para ello inicializamos un objeto DirectoryEntry y le pasamos la ruta del AD, el dominio, el usuario (dominio y usuario se concatenan con un "\" en el centro) y la clave del usuario. Luego procedemos a realizar el filtro del SAMAccountName para obtener el CN (Nombre Común), dicha propiedad contiene en el indice 0 el dato que necesitamos :). Finalmente guardamos el valor obtenido en un string global (línea 15) ya que haremos uso de dicho valor en la función ListarGruposRed
Una vez obtenido el nombre del usuario, se procede a realizar la búsqueda de los grupos de red del usuario, para ello usamos el filtro CN, como dicho valor ya lo tenemos en la variable global datosUsuario concatenamos la variable que contiene la información, luego procedemos a cargar la propiedad "memberOf", esta propiedad retorna una colección con información de los grupos de red del usuario que enviamos su CN, a continuaciòn procedemos a contar sus elementos y por cada elemento de la colección extraemos el nombre del grupo de red, a priori sabemos que dicho dato se encuentra entre el primer igual (=) y la primera coma (,) por lo tanto obtenemos el indice de dichos simbolos y usando la función substring extraemos el nombre del grupo de red y finalmente procedemos a agregar dicho valor a nuestra lista.
Código completo:
No hay comentarios:
Publicar un comentario