版本:SharePoint 2013
我正在尝试为WCF服务中的用户设置pictureurl属性。遵循的主要逻辑如本博客http://pholpar.wordpress.com/2010/03/10/how-to-upload-a-user-profile-photo-programmatically/
中所述userProfile [" PictureUrl"]。Value = pictureUrl;
在这一行中,我遇到异常"用户无法通过正在访问的网站进行身份验证。"
感谢任何帮助。
答案 0 :(得分:1)
我在尝试更新用户个人资料属性时遇到了同样的错误,这个代码对我有用:
SPUserToken token = SPUserToken.SystemAccount;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(currGuid, token))
{
site.AllowUnsafeUpdates = true;
HttpContext.Current = null; //clear the context for impersonation with token! mandatory!
SPServiceContext serviceContext = SPServiceContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(serviceContext);
UserProfile prof = profileManager.GetUserProfile(userName);
prof["My Property"].Value = "abcd";
}
});
修复错误的部分在获取概要文件管理器之前清除了当前上下文。