Intentando obtener el administrador del usuario:Obteniendo SPServiceContext con SiteSubscriptionId de {00000000-0000-0000-0000-000000000000}

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/53065

Pregunta

Estoy intentando conseguir un administrador de usuarios con este código:

SPSecurity.RunWithElevatedPriviliges(delegate
{
  SPSite site = new SPSite(SPContext.Current.Site.Url);
  SPServiceContext context = SPServiceContext.GetContext(site);
  UserProfileManager profileManager = new UserProfileManager(context);
  //Note that I have an SPUser object, user, previously defined.
  UserProfile userProfile = profileManager.GetUserProfile(user.ID);
  UserProfile managerProfile = userProfile.GetManager();
});

Mi problema es que obtengo un UserProfileManager nulo.Sospecho que es porque SPServiceContext tiene un SiteSubcriptionId de {00000000-0000-0000-0000-000000000000}.

Estoy depurando esto en mi servidor SharePoint local.Lo estoy ejecutando en un entorno de desarrollo en Windows 7.¿Este error indica un problema con mi entorno?

¿Existe una mejor manera de obtener el administrador de un SPUser determinado?

EDITAR:

Parece que ni mi máquina local ni mi servidor de prueba tienen el Servicio de perfil de usuario configurado correctamente.Probablemente por eso no funciona.Voy a intentar que funcione y veré si todavía tengo el problema.

¿Fue útil?

Solución

El Guid vacío aquí en realidad no es preocupante.SiteSubscriptionId siempre será un Guid en blanco a menos que tenga habilitado el arrendamiento múltiple en su entorno.

Habilitación de la compatibilidad con múltiples inquilinos en SharePoint 2010

Es posible que deba agregar permiso para su usuario en la Aplicación de servicio de perfil de usuario.

En Configurar conexiones de sincronización de perfil de usuario estaban tratando de conseguir el UserProfileManager a través de PowerShell y aparece un error (NullReferenceException) pero lo resolvió asegurándose de que la cuenta de usuario que intentaba obtener el UserProfileManager tenía permisos:

1) Como administrador con control total

2) permisos de conexión como control total

Luego tiene acceso al administrador de conexiones y puede acceder mediante programación a las conexiones.

Otros consejos

Además del administrador y el permiso en el UPSA, necesitaba agregar el usuario de la configuración de SharePoint como DB_Owner en el perfildeb.

Licenciado bajo: CC-BY-SA con atribución
scroll top