401 не утвержден в SharePoint 2007 - PullRequest
       38

401 не утвержден в SharePoint 2007

0 голосов
/ 10 февраля 2010

Я создал веб-часть, которая собирает информацию из библиотеки документов. Он хорошо работает в веб-приложении «admin» (у нас есть два веб-приложения: сайт администратора для неанонимных пользователей; сайт www для анонимных пользователей. Эти два сайта имеют одинаковый контент).

Когда я открываю сайт www, он показывает пустую веб-часть, когда она не является ссылкой на библиотеку документов. Однако, когда он связан с библиотекой документов, он показывает 401 НЕСАНКЦИОНИРОВАН. CQWP может успешно запросить одну и ту же библиотеку документов как с сайтов администратора, так и с сайтов www.

Любая помощь?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2010

решаемая.

Кажется, объект SPWeb, перечисленный из свойства siteCollection объекта SPSite AllWebs, выполняет проверку безопасности для каждого веб-объекта.

Если у пользователя нет прав доступа к определенному веб-объекту, он выдает ошибку на верхнем уровне, что приводит к 401 странице.

Использование повышенных привилегий решило проблему.

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    foreach (SPWeb s in siteCollection.AllWebs)
    {...}
});

Статья MSDN: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

1 голос
/ 11 февраля 2010

Будьте осторожны при работе с повышенными привилегиями. SharePoint знает, кто делает запрос, и может корректировать результаты в зависимости от привилегий этого пользователя. Запуск с повышенными привилегиями может вернуть результаты, не предназначенные для этого человека.

...