Доступ запрещен при запросе подсчета всех сетей - SharePoint WSS 3.0 SP2 - PullRequest
0 голосов
/ 06 июля 2010

Я пытаюсь перечислить все ссылки на всех веб-сайтах SharePoint (родительских и дочерних). Когда я вошел в систему как пользователь с правами администратора, он работает просто отлично. Однако, когда я вхожу в систему как обычный пользователь, я получаю сообщение об ошибке отказа в доступе. И возникает ошибка, когда я проверяю свойство count в SPWebCollection.

SPSite oSiteCollection = SPContext.Current.Site;
SPWebCollection collWebsite = oSiteCollection.AllWebs;

StringBuilder labelText = new StringBuilder();

for (int i = 0; i < collWebsite.Count; i++) // <---- Access denied on count
{ // get links }

Я попытался добавить, предоставив моему обычному пользователю полный контроль над сайтом, и я все еще получил ошибку «Отказано в доступе». Есть идеи, какое правило доступа проверяется при доступе к свойству count?

1 Ответ

0 голосов
/ 07 июля 2010

Вы можете попробовать использовать учетную запись пула приложений, используя метод RunWithElevatedPrivileges для SPSecurity.

SPSecurity.RunWithElevatedPrivileges(delegate()
{
   SPSite oSiteCollection = SPContext.Current.Site;
   SPWebCollection collWebsite = oSiteCollection.AllWebs;

   StringBuilder labelText = new StringBuilder();

   for (int i = 0; i < collWebsite.Count; i++) // <---- Access denied on count
   { // get links }
});
...