Как подготовить пользовательскую страницу без использования каталога _layouts?
-
03-07-2019 - |
Вопрос
Мне нужно подготовить настраиваемую страницу aspx, которая выполняет некоторую работу, а затем перенаправляет на другую страницу. Используя страницу _layouts, AKA страница приложения не будет работать, поскольку я хочу, чтобы эта страница была доступна только одному семейству сайтов.
Я посмотрел на использование шаблона № 4 из поста в блоге Разработка приложений для MOSS 2007 и WSS V3 . Это довольно забавно, и просит вас бросить DLL. Поместите его в корзину семейства сайтов и загрузите файл через SP Designer.
Я бы предпочел, чтобы эта страница была функцией, которая включается в определение моего сайта или прикрепляется к существующему определению сайта. Я полагаю, я мог бы использовать приемник функций для развертывания файлов в списке SP страниц. Один из комментариев к сообщению в блоге говорит так же:
Прошу прощения за мое невежество, может быть, я полностью упустив, но не будет ли легче развернуть ваш пользовательские страницы программно добавить их в список страниц?
У меня была простая страница ASPX с пользовательским управлением. Я развернул его через этот метод.
Как настроить пользовательскую страницу без использования страницы _layouts?
Я думаю, что другой вариант - продолжать использовать страницу _layouts, но убедитесь, что реферер правильный.
Решение
Помимо страниц приложений, у вас также есть возможность создавать страницы сайта.
Страницы сайта по своей природе связаны со страницами приложения, но они находятся на сайте, а не в _LAYOUTS.
Страница приветствия (default.aspx) является примером такой страницы.
Точно так же, как и на страницах приложения, на этих страницах можно выполнить задний код (ознакомьтесь со статьей AC по этому вопросу, Использование файлов кода ASP.NET 2.0 на сайтах SharePoint v3 )
Вы можете прочитать эту статью о тонких различиях между страницами приложения и страницами сайта: Приложение SharePoint и страницы сайта - Часть 1 из 2
Вы развертываете эту пользовательскую страницу с помощью функции, в которой вы указываете файл как ghostable (см. пример в статье AC).