2012-04-30 2 views

ответ

2

Вместо того, чтобы временно предоставить доступ пользователю, я бы рекомендовал инстанцирования SPSite с SystemAccount:

SPSite site = web.Site; 
Guid id = web.ID; 
SPUtility.ValidateFormDigest(); 
using (SPSite systemSite = new SPSite(site.ID, site.SystemAccount.UserToken)) 
{ 
    using (SPWeb systemWeb = systemSite.OpenWeb(id)) 
    { 
     // perform as site administrator 
    } 
} 
+0

не содержит определение для «Web» получение выше ошибки компиляции ниже линии SPSite сайта = this.Web.Site; Большое спасибо за то, что нашли время для меня :) – Rushikesh

+0

Я изменил код, чтобы исходный SPWeb был переменной, а не свойством. Так или иначе вам понадобится экземпляр SPWeb для определения вашего контекста. –

0

Я бы порекомендовал работает при повышенных привилегий в вашем коде. Это даст вашему коду, который временно выполняет более высокие разрешения. Убедитесь, что вы открываете свой сайт, веб-страницы и объекты списка открываются в этом делетете. См. MSDN article и пример ниже.

SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    using (SPSite site = new SPSite(web.Site.ID)) 
    { 
    // implementation details omitted 
    } 
}) 
Смежные вопросы