如何:更改网站集中的所有用户配置文件的 PictureUrl 属性

上次修改时间: 2010年5月28日

适用范围: SharePoint Server 2010

本主题中的代码示例演示如何在网站集中更改每个用户的 PictureUrl 属性的值,以便该值与用户配置文件照片的新位置或 URL 相对应。

使用代码来更改所有用户的 PictureUrl 属性

当您将"我的网站"网站宿主从一个位置移动到另一个位置时,您可能想要同时移动"我的网站"照片的位置。如果移动照片的位置,则必须更改网站集中每个 UserProfile 对象的 PictureUrl 属性,以便其与新位置相对应。当新位置的 URL 与以前的 URL 不同时,或者,当您开始使用安全套接字层 (SSL) 协议,并且必须更改您的图像 URL 以便其符合此协议的要求(URL 以 https:// 开头而不是以 http:// 开头)时,此更改很有必要。以下代码示例演示如何更改一个网站集中每个 UserProfile 对象的 PictureUrl 属性。该网站集应与"我的网站"宿主相对应。本主题假设您在 Microsoft .NET Framework 3.5 上进行构建,并且已经向 Microsoft Visual Studio 2010 项目中添加了以下引用:

  • Microsoft.SharePoint

  • Microsoft.Office.Server.UserProfiles

using (SPSite site = new SPSite("siteUrl"))
{
   SPServiceContext context = SPServiceContext.GetContext(site);
   UserProfileManager myUserProfileManager = new UserProfileManager(context);

   try
   {
      foreach (UserProfile aUser in myUserProfileManager)
      {
         string origUrl = (string)aUser[PropertyConstants.PictureUrl].Value;
         string newUrl = origUrl.Replace("http://mysite", "https://mysite");
         aUser[PropertyConstants.PictureUrl].Value = newUrl;
         aUser.Commit();
      }
   }
   catch (System.Exception ex)
   {
      Console.WriteLine(ex.Message);
   }
}

请参阅

引用

Microsoft.Office.Server.UserProfiles

概念

SharePoint Server 2010 中的用户配置文件和社交数据