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