Пытаюсь получить менеджер пользователей:Получение SPServiceContext с SiteSubscriptionId {00000000-0000-0000-0000-000000000000}

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

Вопрос

Я пытаюсь получить менеджера пользователей с помощью этого кода:

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();
});

Моя проблема в том, что я получаю нулевой UserProfileManager.Я подозреваю, что это потому, что SPServiceContext имеет SiteSubcriptionId {00000000-0000-0000-0000-000000000000}.

Я отлаживаю это на своем локальном сервере SharePoint.Я запускаю его в среде разработки в Windows 7.Означает ли эта ошибка проблему с моей средой?

Есть ли лучший способ получить менеджера данного SPUser?

РЕДАКТИРОВАТЬ:

Похоже, что ни на моем локальном компьютере, ни на моем тестовом сервере служба профилей пользователей не настроена должным образом.Вот, наверное, поэтому и не работает.Я попытаюсь заставить это работать и посмотреть, есть ли у меня проблема.

Это было полезно?

Решение

Пустой гайд здесь на самом деле не имеет значения.SiteSubscriptionId всегда будет пустым Guid, если в вашей среде не включена мультитенантность.

Включение поддержки нескольких клиентов в SharePoint 2010

Возможно, вам потребуется добавить разрешение для вашего пользователя в приложении-службе профилей пользователей.

В Настройка подключений для синхронизации профиля пользователя они пытались получить UserProfileManager через PowerShell и получаю ошибку (NullReferenceException), но решил проблему, убедившись, что учетная запись пользователя пытается получить UserProfileManager имел разрешения:

1) Как администратор с полным контролем

2) разрешения на подключение как полный контроль

После этого у вас будет доступ к диспетчеру соединений и вы сможете программно получить доступ к соединениям.

Другие советы

В дополнение к администратору и разрешению на UPSA, мне нужно было добавить пользователя SharePoint Setup в качестве db_owner на Profiledb.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top