Не удается отловить ошибку «Отказано в доступе SharePoint» - PullRequest
7 голосов
/ 07 апреля 2009

Я пытаюсь получить доступ к списку sharepoint программно в веб-части, как это.

try
{
      masterList = web.Lists[listId];
}
catch(Exception e)
{
      RenderExceptionMessage(e.Message);
}

Метод RenderExceptionMessage () должен показывать удобное сообщение об ошибке внутри веб-части.

Но проблема в том, что я не могу поймать Исключение. Вместо этого страница веб-части перенаправляет на страницу отказа в доступе, на которой отображается сообщение об ошибке «В данный момент вы вошли как: домен \ пользователь»

Кроме того, сообщение об обнаруженном исключении гласит: «Невозможно оценить выражение, потому что код оптимизирован или собственный фрейм находится над стеком вызовов».

Есть идеи, почему так происходит?

Ответы [ 2 ]

9 голосов
/ 07 апреля 2009

По умолчанию в SharePoint предусмотрена настраиваемая обработка исключений, связанных с отказом в доступе (включая перенаправление на настраиваемую страницу) в запросах страницы / веб-службы, в обход обработки исключений в вашем коде.

Чтобы отключить эту пользовательскую обработку, установите для SPSecurity.CatchAccessDeniedException значение false.

1 голос
/ 07 апреля 2009

Возможно, еще один способ справиться с этим - добавить защитное программирование, такое как проверка, чтобы убедиться, что у пользователя есть доступ к SPWeb и / или SPList. Сверху головы я думаю, что SPWeb.EnsureUser может помочь. Также могут помочь SPList.CheckPermissions или SPList.DoesUserHavePermissions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...