Доступ Sharepoint к списку игнорирует разрешение пользователя - PullRequest
0 голосов
/ 03 февраля 2011

Я создал веб-часть (что-то вроде мастера) и мне нужно изменить значение элемента в списке, но когда он получен, у него нет элементов (зарегистрированный пользователь не имеет доступа к этому списку).Могу ли я игнорировать разрешение sharepoint и обновлять это значение?

Я использую LINQ для sharepoint и получения контекста:

using (SystemOcenContextDataContext ctx = new SystemOcenContextDataContext("http://sh2010/sites/270"))
{
    // code :)
}

Обновление:

сделать тест при получении списка, используя

  SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite ElevatedSite = new SPSite("http://sh2010/sites/270"))
                {
                    using (SPWeb ElevatedWeb = ElevatedSite.OpenWeb())
                    {
                        list = ElevatedWeb.Lists["Ankiety i oceny"];
                    }
                }
            });

список объектов «имеет» элементы

, но в моем проекте я использую sharepoint linq datacontext при использовании:

 SPSecurity.RunWithElevatedPrivileges(delegate()
            {

            using (SystemOcenContextDataContext ctx = new SystemOcenContextDataContext("http://sh2010/sites/270"))
            {
                item = ctx.AnkietyIOceny.First();
            }

        });

context(ctx) неесть какие-либо предметы: /

есть идеи?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2011

Линк, предоставляемый SharePoint, не работает с ElevatedPrivileges.Он обращается к экземпляру SPWeb.Current, который будет иметь права доступа для запроса, а не пользователя с повышенными правами.

http://jcapka.blogspot.com/2010/05/making-linq-to-sharepoint-work-for.html

Есть обходной путь, который я реализовал, как правило, так же.Это очень неловко, но это работает, насколько я могу судить.

0 голосов
/ 03 февраля 2011
  SPSecurity.RunWithElevatedPrivileges(delegate()
  {
        // Pur your code here.
  }); 

Получить более подробную информацию Здесь

...