0

В основном я делаю задание таймера, чтобы отправить письмо с днем ​​рождения, полученное от Служба пользовательского профайла SharePoint. Но проблема в том, что у меня есть несколько пользовательских профилей на сервере.Как использовать выбранную службу профиля пользователя в 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-й профиль профиля пользователя и повторить его.

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

ответ

0

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

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); 
+0

Спасибо. Я проверю и вернусь к вам. – nirav