如何在SharePoint中使用选定的用户配置文件服务
本文关键字:用户 配置文件 服务 SharePoint | 更新日期: 2023-09-27 18:21:25
基本上,我正在做一个计时器作业,发送从SharePoint用户配置文件服务获取的birthdayWish电子邮件。但问题是我在服务器上有多个用户配置文件服务。
如1)。用户配置文件服务1
2) 。用户配置文件服务2
3) 。用户配置文件服务3
4) 。用户档案服务4
那么如何使用第二用户配置文件服务。
这是我做的一些代码:
SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
UserProfileManager oProfileManager = new UserProfileManager(oServiceContext);
因此,在SPServiceApplicationProxyGroup.Default中,它正在获取第一个用户配置文件。
其中我想使用第二用户配置文件服务。但在默认情况下,当尝试访问其geting第一个用户配置文件服务并对其进行迭代时。
那么如何将其设置为使用第二用户配置文件服务。
我的猜测是,您有一个用户配置文件服务实例(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);