我编写了以下代码来编辑MOSS 2007的用户配置文件。用户配置文件正在通过Active目录填充。
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 Direct。
答案 0 :(得分:3)
使用sharepoint 2007,SPSite属于SPWebApplications,它与存储用户配置文件属性的SSP相关联。
SPSite sc = new SPSite("http://xxxxx:81");
ServerContext context = ServerContext.GetContext(sc);
这些行有效性查找与您传入的SPSite网址相关联的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