Hot para obtener una propiedad de usuario personalizada de UserInformationList
-
16-10-2019 - |
Pregunta
Mis perfiles de usuario tienen algunas propiedades personalizadas. Ahora necesito obtener una lista de todos los valores que esta propiedad personalizada tiene en cualquier usuario. Este código devuelve un error de que "división de columna" no existe. Puede haber sido eliminado por otro usuario ".
¿Es este el enfoque correcto? Hay muchos usuarios y posibles muchos valores distintos.
SPListItemCollection userInformationList = SPContext.Current.Web.SiteUserInfoList.Items;
var divisions= (from SPListItem userItem in userInformationList.Items where userItem["Division"] != null select userItem["Division"]);
Solución
Verifique el GetUserProfile de UserProfilemanager. Obtiene todo el objeto, debe ser el lugar correcto para buscar una lista de todas las propiedades personalizadas.
Estoy trabajando en una parte web casi simlial. Estoy tratando de mostrar solo un par de propiedades personalizadas.
Espero ayudar
http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofilemanager.aspx
Otros consejos
¡En primer lugar, nunca use Linq de esta manera en SharePoint! ¡Recuperará la lista completa de información del usuario de la base de datos al presionar la propiedad .Items! En su lugar, use una consulta CAML para "buscar" a los usuarios que usan el objeto Spquery.
Recomendaría que uses el U2U Caml Consultor de consultas Para construir su consulta: con esa herramienta obtendrá las columnas correctas y el nombre de la columna.