📅  最后修改于: 2023-12-03 15:20:07.482000             🧑  作者: Mango
当我们在 SharePoint 中需要获取某个用户的个人资料图片时,我们可以通过以下步骤来实现:
以下是每个步骤的详细介绍及相应的代码示例:
我们可以使用 SharePoint 对象模型中的 SPUser 类来获取用户的电子邮件地址。以下是获取当前用户电子邮件地址的示例代码:
using Microsoft.SharePoint;
// ...
SPWeb web = SPContext.Current.Web;
SPUser user = web.CurrentUser;
string emailAddress = user.Email;
我们可以使用 SharePoint 对象模型中的 UserProfile 类来获取用户的个人资料图片 URL。以下是获取当前用户个人资料图片 URL 的示例代码:
using Microsoft.Office.Server.UserProfiles;
// ...
SPServiceContext context = SPServiceContext.GetContext(web.Site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(user.LoginName);
string pictureUrl = profile.PictureUrl;
我们需要将获取的用户电子邮件地址和个人资料图片 URL 组合起来,构建用户个人资料图片的 URL。以下是构建当前用户个人资料图片 URL 的示例代码:
string imageUrl = String.Format("{0}/_layouts/15/userphoto.aspx?size=L&accountname={1}", web.Url, emailAddress);
最后,我们可以在应用程序中使用上一步构建的用户个人资料图片 URL 来获取用户的个人资料图片。以下是获取当前用户个人资料图片的示例代码:
System.IO.Stream pictureStream = web.GetFile(imageUrl).OpenBinaryStream();
byte[] pictureBytes = new byte[pictureStream.Length];
pictureStream.Read(pictureBytes, 0, pictureBytes.Length);
string pictureBase64 = Convert.ToBase64String(pictureBytes);
string pictureHtml = string.Format("<img src=\"data:image/png;base64,{0}\" />", pictureBase64);
通过上述步骤,我们可以轻松获取 SharePoint 中某个用户的个人资料图片。以上示例代码仅供参考,实际情况下可能需要根据具体需求进行调整。