使用Sharepoint 2010获取财产隐私

时间:2012-03-09 14:12:33

标签: c# visual-studio visual-studio-2010 sharepoint sharepoint-2010

我正在尝试获取确定用户属性的当前隐私状态。我什么都不做,我只需要知道属性是如何配置的,这样我就可以做出决定了。这是我的代码:

      SPSecurity.RunWithElevatedPrivileges(delegate()
        {   
           using (SPSite site = new SPSite("http://sp2010dev:3767"))
            { 
                context = SPServiceContext.GetContext(site);
                psm = ProfileSubtypeManager.Get(context);
                upm = new UserProfileManager(context, false);
                UserProfile user = upm.GetUserProfile(false);
                Privacy privacy = user["SPS-Skills"].Privacy;
            }
        });

我收到此消息:拒绝访问:除非您是管理员,否则您可以检索自己的个人资料的隐私设置。

有任何线索吗?

1 个答案:

答案 0 :(得分:3)

奇怪!!! 它应该是你的代码。不知道为什么它不运行?

你应该试试这个

   try
        {
            SPUser AdminUser = SPContext.Current.Web.AllUsers[@"SHAREPOINT\SYSTEM"];
            var superToken = AdminUser.UserToken;
            HttpContext con = HttpContext.Current;
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(SPContext.Current.Site.Url, superToken))
                {
                    SPServiceContext context = SPServiceContext.GetContext(site);
                    HttpContext.Current = null;
                    UserProfileManager upm = new UserProfileManager(context, false);
                    \\get useprofile code
                 }  
             });
           HttpContext.Current = con;
        }
        catch (Exception ex)
        {
            throw ex;
        }  

跳这有帮助。