Участники сайта/посетители получают страницу ошибки отказа

StackOverflow https://stackoverflow.com/questions/1667246

Вопрос

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

Однако посетители сайта/пользователи перенаправлены на страницу ошибки отказа. Конечно, я, должно быть, делаю некоторые вещи, которые нормально не разрешают.

Но то, что меня беспокоит, так это то, что когда я помещаю точку останова в конструкторе веб -частей или даже объявление переменной, это не будет поражена! (Если я попытаюсь просмотреть страницу с ограниченными привилегиями). Но в моем браузере я получаю страницу отказа в доступе. Однако, если я закрываю эту веб -часть, у меня сразу же есть доступ к этой странице, и все в порядке.

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

РЕДАКТИРОВАТЬ: Извините, оказывается, отладчик теперь достигает этих точек останова. Не знаю, что изменилось, потому что символы были загружены.

Это было полезно?

Решение 2

Нашел решение.

Оказывается, что я запретил, чтобы определить, принадлежит ли пользователь конкретной группе, пытаясь получить доступ к пользователям этой группы. Поскольку это было невозможно, если у пользователя нет таких разрешений, он бросал какое -то внутреннее исключение с сообщением

«Невозможно оценить выражение, потому что код оптимизирован или нативная кадра находится на вершине стека вызовов».

В любом случае, я теперь научился проходить через SPUser.Groups (SPGroupCollection) И проверьте, есть ли у нас подходящая группа, а не перечислять директоров группы и посмотреть, находится ли он внутри.

Другие советы

Какой уровень доверия на вашем сайте SharePoint? Возможно, вы захотите временно дать Fulltrust, чтобы увидеть, есть ли у вас проблемы с доступом.

Если да, то у вас может быть проблема безопасности доступа к коду (CAS). Мой первый инстинкт заключается в том, что ваша сборка не имеет необходимой привилегии для правильного запуска для нормальных пользователей. Вы можете настроить его, используя пользовательскую запись CAS в manifest.xml для веб -части, например, если вы вызовуте внешние ресурсы, вам, возможно, придется настроить System.new.webpermission и определить, к какому URL вам разрешено получить доступ. Вы можете найти больше информации об этом в Сайт U2U.

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

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

Ваше здоровье!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top