none
Crear directorio de empleados (lista personalizada) a partir de perfiles de usuario sincronizados desde el Directorio Activo RRS feed

  • Pregunta

  • Hola,

    Tenemos un servidor SharePoint con varias colecciones de sitios y varios subsitios por colección. En uno de estos subsitios queremos crear un directorio de empleados. El problema con el que me encuentro es que al recorrerme la lista de perfiles de usuarios, hay algunos que sí están "dados de alta" en el sitio (en la lista oculta User Information List), pero otros que nó (ya sea porque no tienen permisos o porque nunca han accedido). El problema lo tengo con esos usuarios. A la hora de buscarlos para añadirlos a la lista "directorio", no los encuentra.

    Estoy utilizando SPWeb.EnsureUser(loginName), pensando que al no tener una entrada el usuario en la User Information List, este método la crearía, pero parece que no es así porque para los usuarios problemáticos me devuelve null.

    ¿Alguna forma de poder obtener SPUser globales a toda la granja y no solo a un sitio concreto?

    Gracias.


    Saludos.

    jueves, 13 de noviembre de 2014 11:24

Todas las respuestas

  • Hola Hubrich

    para hacer eso tienes que consultar los User Profile. leyendo de la lista de usuarios del sitio no tienes garantías de obtener todos los usuarios.

    Mira el enlace que te paso http://msdn.microsoft.com/es-es/library/office/jj163800(v=office.15).aspx


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server

    jueves, 13 de noviembre de 2014 12:42
  • Hola,

    ¿Con qué versión de SharePoint estás trabajando?

    Un saludo


    ------------------------------------------------------------
    Juan Carlos Gonzalez Martin
    MVP de SharePoint Server - Director revista CompartiMOSS:
    http://www.compartimoss.com
    Blog: http://geeks.ms/blogs/jcgonzalez
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 13 de noviembre de 2014 12:47
  • Hola a ambos,

    Perdón, creo que he sido muy escueto explicándome.

    Uso un SharePoint Server 2013 (creo que estándar .. es la versión que viene con la plantilla de maquina virtual para entornos de desarrollo de Visual Studio Premium MSDN de Azure). Está desplegado junto con un directorio activo en la misma máquina.

    Por otro lado, lo que ya hago es recorrerme la lista de User Profiles. Eso lo hago bien y los obtengo todos. El tema es que cuando intento obtener un SPUser a partir del loginName del User Profile por el que voy iterando para asignárselo al campo Person|Group de mi lista personalizada, yo la única forma que conozco es mediante SPWeb.Users, SPWeb.AllUsers y el que pensaba que me iba a sacar del apuro SPWeb.EnsureUser. Pero no. Al usarlo me dice que no lo encuentra.

    Jarrrrllll, justo ahora mismo me acabo de dar cuenta que si creo una entrada vía web en mi lista personalizada .. !!SORPRESA!! .. el componente PeoplePicker no me encuentra los usuarios del directorio activo. Solo el Administrador que por otro lado es el único que me funcionaba con el método EnsureUser.

    Voy a revisar que pasa, pero es raro porque la sincronización con el servicio de perfiles de usuario está bien hecha. De hecho desde la consola de administración consigo ver los perfiles creados en la sincronización.


    Saludos.

    jueves, 13 de noviembre de 2014 13:05
  • Nada nada .. despiste mío. Al hacer la importación de usuarios en el directorio activo, las password no se incluyen y por defecto las cuentas quedan deshabilitadas, así que por eso no me las encontraba ni el componente PeoplePicker ni el método EnsureUser. Las únicas cuentas eran las de administración de los distintos servicios SharePoint. Una vez habilitadas las cuentas, "EnsureUser" funciona como debiera.


    Saludos.

    jueves, 13 de noviembre de 2014 17:08