ColdFusion: нужен ли второй application.cfm для защищенного подкаталога на аутентифицированном сайте?
У меня есть аутентифицированный веб-сайт, в котором есть подкаталог с более строгими требованиями к доступу. Любой может зарегистрироваться на главном сайте, но только администраторы сайта могут войти в подкаталог. В настоящее время как основной сайт, так и подкаталог имеют свои application.cfm
файлы и страницы входа.
Я недавно обновился с ColdFusion 8 до CF 10, и мне пришлось много переконфигурировать обработку моего сеанса. Сейчас я использую куки-файлы только для сессии, чтобы помочь поддерживать сессию пользователя при его перемещении по сайту.
С этим изменением в поведении в CF 10 я обеспокоен тем, что администраторы сайтов, которые также зарегистрированы на главном веб-сайте, получат зашифрованные сеансы, если они будут перемещаться между двумя приложениями (например, чтобы посмотреть, могут ли они реплицировать проблемы пользователей или поиск данных базы данных, пока они находятся на основном сайте).
Учетные данные для основного сайта и подкаталога поступают из одной и той же пользовательской базы данных, а администраторы сайта имеют флаг, который разрешает им дополнительный доступ. Я могу легко написать скрипт, который проверяет, вошел ли пользователь на основной сайт или в подкаталог, и направляет их соответствующим образом, если они меняются местами.
Итог, в мире CF 10, мне нужна вторая application.cfm
и, впоследствии, второй набор переменных сеанса для этого подкаталога?
(Примечание: я рассмотрел как межсайтовую аутентификацию Coldfusion, так и возможность нескольких cfapplications в записях application.cfm?, И, хотя у них здесь много вкусностей, я не совсем отвечаю на мой запрос.)
2 ответа
Нет, необязательно иметь несколько файлов application.cfm/cfc. Даже не обязательно иметь первый. Тем не менее, это не обязательно плохо, если иметь несколько. Если у вас их несколько, вы можете по-разному обрабатывать ошибки и запросы для подкаталога, если это выгодно для ваших целей.
Я предпочитаю использовать только один application.cfc, чтобы вся моя маршрутизация / аутентификация / обработка ошибок выполнялась заранее, а не была разделена между основным приложением и областью администратора, и мне не приходилось иметь дело с несколькими сессиями на пользователя.
Если у вас есть session
переменные в application.cfm
в parent directory,
ты можешь просто <cfinclude>
это в application.cfm
файл в subdirectory
, Так что вы можете иметь одинаковые значения сеанса для файлов в подкаталоге тоже.
пример application.cfm
в subdirectory:
<cfinclude template="/home_directory/application.cfm" />
Примечание: здесь не нужно использовать <cfapplication>
тег.