如何在SharePoint 2013中以编程方式检查用户配置文件?

时间:2016-04-13 12:14:08

标签: c# sharepoint-2013 sharepoint-userprofile

我正在尝试从用户个人资料中获取用户个人资料图片。这是我的代码示例:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite site = new SPSite(SPContext.Current.Site.Url))
    {
        SPServiceContext ctx = SPServiceContext.GetContext(site);
        UserProfileManager upm = new UserProfileManager(ctx); // Here I get error
        if (upm.UserExists(loginUserName))
        {
            UserProfile up = upm.GetUserProfile(loginUserName);

            if (!string.IsNullOrWhiteSpace(Convert.ToString(up["PictureUrl"].Value)))
            {
                this.userimage = Convert.ToString(up["PictureUrl"].Value);
            }
        }
    }
});

以下是我为此代码提供的MSDN链接: https://msdn.microsoft.com/en-us/library/office/jj163142.aspx

但如果上述代码中的userProfileManager声明中不存在用户个人资料,则会出现以下错误:

  

类型的例外   'Microsoft.Office.Server.UserProfiles.UserProfileApplicationNotAvailableException'   发生在Microsoft.Office.Server.UserProfiles.dll但不是   用户代码处理

     

其他信息:   UserProfileApplicationNotAvailableException_Logging ::   UserProfileApplicationProxy.GetRawPartitionID具有空代理

有没有其他方法可以检查用户配置文件是否以编程方式存在?提前谢谢。

0 个答案:

没有答案