Получение конфиденциальности собственности с Sharepoint 2010 - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь получить текущий статус конфиденциальности для определения свойства пользователя.Я ничего не делаю, мне просто нужно знать, как настроено свойство, чтобы я мог принимать решения.Это мой код:

      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 Ответ

3 голосов
/ 09 марта 2012

странно !!! должен работать ваш код.Не знаете, почему он не работает?

Вы должны попробовать это

   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;
        }  

Хмель, это помогает.

...