我编写了以下代码来编辑 MOSS 2007 的用户配置文件。通过 Active Directory 填充用户配置文件。
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite sc = new SPSite("http://xxxxx:81");
ServerContext context = ServerContext.GetContext(sc);
HttpContext currentContext = HttpContext.Current;
HttpContext.Current = null;
UserProfileManager profileManager = new UserProfileManager(context);
foreach (UserProfile profile in profileManager)
{
if (profile[PropertyConstants.PreferredName].ToString().Contains("Domain\\"))
{
profile[PropertyConstants.PreferredName].ToString().Replace("Domain\\", "").ToString();
profile.Commit();
NoOfUser++;
}
}
详细信息正在正确更新。
我的问题是我需要使用哪个站点来更新详细信息。
例如,我有 SSP 服务 WebApplication、中央管理 Web 应用程序和其他 Web 应用程序。
我需要使用哪个站点来更新配置文件,以便在所有站点中更新配置文件名称。
任何人都可以指出我正确的方向。
谢谢你。
哈里·吉拉拉
NHS 直接。
最佳答案
对于 sharepoint 2007,SPSite 属于 SPWebApplications,它们与存储用户配置文件属性的 SSP 相关联。
SPSite sc = new SPSite("http://xxxxx:81");
ServerContext context = ServerContext.GetContext(sc);
这些行有效性查找与您传入的 SPSite url 关联的 SSP。
看起来您只有一个 SSP,因此您在构造函数中使用的任何 SPSite url 都会为您提供对正确 SSP 的引用。
一旦信息存储在 SSP 数据库中,计时器作业就会将信息从 SSP 存储复制到各个 SPSite 数据库,并将其复制到隐藏列表“用户信息列表”中。
这个链接解释了 2010 年,让我看看我是否能找到 2007 年的:
http://www.harbar.net/articles/sp2010ups.aspx
编辑
我为您找到了 2007 年的解释链接:
http://blah.winsmarts.com/2007-7-MOSS_User_Profile_Info_-_How_the_information_flows.aspx
关于sharepoint-2007 - Sharepoint-Active Directory 配置文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4690205/