更新Sharepoint userprofile的pictureurl属性时出错

时间:2014-09-24 14:40:28

标签: wcf sharepoint sharepoint-2013

版本:SharePoint 2013

我正在尝试为WCF服务中的用户设置pictureurl属性。遵循的主要逻辑如本博客http://pholpar.wordpress.com/2010/03/10/how-to-upload-a-user-profile-photo-programmatically/

中所述

userProfile [" PictureUrl"]。Value = pictureUrl;

在这一行中,我遇到异常"用户无法通过正在访问的网站进行身份验证。"

感谢任何帮助。

1 个答案:

答案 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";
    }
});

修复错误的部分在获取概要文件管理器之前清除了当前上下文。