Как использовать выбранную службу профиля пользователя в SharePoint - PullRequest
0 голосов
/ 24 января 2012

Обычно я выполняю задание таймера для отправки электронного сообщения на день рождения, полученного из Служба профилей пользователей SharePoint . Но проблема в том, что у меня есть несколько пользовательских профилей на сервере.

как 1). userprofile service1
2). userprofile service2
3). userprofile service3
4). userprofile service4

Итак, как использовать сервис 2-го профиля пользователя.

Вот код, который я сделал:

    SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

     UserProfileManager oProfileManager = new UserProfileManager(oServiceContext);

Итак, в SPServiceApplicationProxyGroup.Default получение первого профиля пользователя.

Среди них я хочу использовать 2-я служба профиля пользователя . но по умолчанию при попытке получить доступ к его 1-й службе профиля пользователя и выполнить итерацию по нему.

Итак, как настроить его на использование службы второго профиля пользователя.

1 Ответ

0 голосов
/ 14 июня 2012

Я предполагаю, что у вас есть один экземпляр службы профилей пользователей (UPS) с несколькими приложениями-службами профилей пользователей (UPA) (а не с несколькими UPS):

var userAppName = "userprofile service2";
SPFarm farm = SPFarm.Local;

SPServiceApplication application;
foreach (SPService s in farm.Services)
{
    if(s.TypeName.Contains("User Profile Service"))
    {
        //We found UPS
        foreach(SPServiceApplication app in s.Applications)
        {
            if(app.Name == userAppName)
                application = app; //Here is UPA
        }
    }
}

//Or if you like oneliner (not 100% safe)
var x = farm.Services.First(s => s.TypeName.Contains("User Profile Service"))
          .Applications.FirstOrDefault(app => app.Name == userAppName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...