none
Анонимный доступ к CustomPage.aspx RRS feed

  • Вопрос

  • Всем доброго времени суток.

    Может ли кто-нибудь дать совет о настройке анонимного доступа для персональных страниц?

    Теперь подробнее:

    1) для обеспечения некоторых нужд (кастомизация функционала) создан проект в VS 2010, где есть CustomPage.aspx  с необходимым функционалом;

    2) Страница помещена в Sharepoint Mapped Folder, т.е. в соответствующий персональный каталог (папку) внутри папки LAYOUTS.

    3) В результате после развертывания такого проекта данная страница будет доступна по адресу http://адрес_сайта/_layouts/ИмяКаталога/CustomPage.aspx.

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

    5) В результате: все в порядке, пока пользователь авторизован, т.е. он имеет доступ к данной странице, может выполнять все необходимые действия на ней и т.п.

    Но вот когда на сайт заходит анонимный пользователь, то при переходе  к нашей кастомной странице вылезает ошибка:

         Ошибка 
         [Page_Load]: Поток находился в процессе прерывания. 
    
        Устранение неполадок в работе службы Microsoft SharePoint Foundation. 
    
        Идентификатор взаимосвязи: ffef8f1d-25d6-4383-8eae-8502f31324d1 
    
    
    При этом в стандартные формы для элементов списков пользователю есть доступ.

    Хотелось бы вообще узнать, есть ли какие-либо рекомендации или правила по поводу управления доступом к страницам в папке LAYOUTS.

    Заранее спасибо.





    26 июля 2011 г. 9:42

Ответы

  • После долгих и упорных переборов переборов всех возможных вариантов, решение наконец найдено!! (урррра товарищи)

    1. Первое - это естественно для страницы было выставлено свойство AllowAnonymousAccess в true.

    Здесь стоит отметить, что замена стандартного LayoutsPageBase на UnsecuredLayoutsPageBase вообще не имела никакого результата - страница упорно требовала авторизацию пользователя при загрузке.

    2. Практически весь код, включая PageLoad был снабжен вот такой конструкцией SPSecurity.RunWithElevatedPrivileges(delegate()....

    Таким образом был достигнут желаемый результат, не просто анонимный доступ к CustomPage.aspx внутри папки LAYOUTS, но и выполнение анонимным пользователем необходимых действий - создание и редактирование некоторого документа.

    P.S. Roman Zhukov спасибо за ссылки, но честно говоря полезного там было мало)) Все это я и раньше знал.

    • Помечено в качестве ответа AlexanderSharePoint 9 августа 2011 г. 5:15
    9 августа 2011 г. 5:14

Все ответы

  • Сразу хочу добавить, что использование следующих методов (см. ниже) не принесло результата.

    • заменить базовый класс для страницы: вместо стандартного LayoutsPageBase поставить UnsecuredLayoutsPageBase (источник);
    • задать значение для свойства страницы AllowAnonymousAccess в true (источник) - так между прочим раньше и было, и все работало, пока на другой сервак не посадил проект.

    В итоге, я думаю, может это уже дело не в самой странице, а в настройках сайта??

    27 июля 2011 г. 8:59
  • Здравствуйте,

    посмотрите по вашему вопросу ресурсы ниже:

    How to provide anonymous access only to two aspx pages and not the enitre site

    Cannot access the custom application in _layouts. Unauthorized: Logon failed due to server configuration

    Cannot access pages using /_layouts//.aspx

    Cannot Access ASPX Pages in Layouts Folder


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
    8 августа 2011 г. 13:31
  • После долгих и упорных переборов переборов всех возможных вариантов, решение наконец найдено!! (урррра товарищи)

    1. Первое - это естественно для страницы было выставлено свойство AllowAnonymousAccess в true.

    Здесь стоит отметить, что замена стандартного LayoutsPageBase на UnsecuredLayoutsPageBase вообще не имела никакого результата - страница упорно требовала авторизацию пользователя при загрузке.

    2. Практически весь код, включая PageLoad был снабжен вот такой конструкцией SPSecurity.RunWithElevatedPrivileges(delegate()....

    Таким образом был достигнут желаемый результат, не просто анонимный доступ к CustomPage.aspx внутри папки LAYOUTS, но и выполнение анонимным пользователем необходимых действий - создание и редактирование некоторого документа.

    P.S. Roman Zhukov спасибо за ссылки, но честно говоря полезного там было мало)) Все это я и раньше знал.

    • Помечено в качестве ответа AlexanderSharePoint 9 августа 2011 г. 5:15
    9 августа 2011 г. 5:14