Как получить два приложения-службы профилей пользователей с помощью C#?
-
10-12-2019 - |
Вопрос
Можно ли получить приложение-службу двух профилей пользователей?
- 1).Сервис профилей пользователей1
- 2).Служба профилей пользователей2
У меня есть код, который извлекает только приложение службы профилей первого пользователя, но нет второй.Как я могу получить доступ к приложению службы профилей 2-го пользователя с помощью кода?
SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
UserProfileManager oProfileManager = new UserProfileManager(oServiceContext);
Примечание:По какой-то причине оба приложения службы профилей пользователей предоставляются на одной ферме SharePoint.
Примечание:Для профилей пользователей не используется стандартная синхронизация.
Решение
Если в вашей ферме есть два приложения службы профилей пользователей, вам необходимо создать одну настраиваемую группу подключений для каждого веб-приложения в ферме.Затем вы можете изменить каждое приложение-службу профилей пользователей, чтобы оно было связано с другим веб-приложением.Это можно сделать, изменив приложения-службы, включенные в группу подключений приложений-служб по умолчанию.В коде используйте URL-адрес каждого веб-приложения, чтобы получить UserProfileManager
каждого приложения-службы профилей пользователей
Другие советы
Хотя я согласен, что имея 2 пользовательских сервиса на ферме - это немного ореховая, надеюсь, ваш сайт только связан только с ним.Вы можете GetContext на объекте SPSITE, а не по умолчанию, что должно заставить вас, связанные с этим сайтом UPS.Если есть 2 Связанные ... Ну ... Я придется копать еще немного.Дайте мне знать, если это работает.
Приложение пользовательского профиля приложение будет иметь его прокси.Это позволит вам отличить эти два сервиса.Назначьте каждый прокси к другой прокси-группе (можно остаться в группе по умолчанию), а вторым, что вы можете назначить «myCustomgroup».Вот как вы можете создать это.
New-SPServiceApplicationProxyGroup –Name MyCustomGroup
.
Теперь вы можете перейти к центральному администрированию-> Application Management-> Настроить ассоциации приложений службы и назначить вашу новую прокси-группу в веб-приложении.Назначьте одну из предварительных приложений сервиса профиля пользователей к нему.И теперь вы готовы катиться.
И именно то, как вы можете получить контекст приложения услуг с использованием пользовательского имени группы прокси.
SPServiceApplicationProxyGroup applicationProxyGroup = SPFarm.Local.ServiceApplicationProxyGroups["MyCustomGroup"];
SPServiceContext serviceContext = SPServiceContext.GetContext(applicationProxyGroup, SPSiteSubscriptionIdentifier.Default);
.