coldfusion application.cfm и затронутые файлы

Если у меня есть сайт с защищенной серверной частью, и я хочу использовать файл application.cfm, как я могу определить, какие страницы используют файлы приложения a, а какие нет.

index.cfm
update/application.cfm
update/loginexpired.cfm
update/login.cfm
update/somesecurepage.cfm
update/someothersecurepage.cfm

я хочу updates/login.cfm создать сеанс, если логин правильный. Если безопасные страницы update/somesecurepage.cfm а также update/someothersecurepage.cfm доступ без правильного входа в систему update/loginexpired.cfm но я не хочу использовать другие страницы application.cfm,

Это правдоподобно или я должен использовать cfinclude вместо?

4 ответа

Решение
  1. Всегда убедитесь, что вы называете свои файлы Application.cfm и Application.cfc с большой буквы "A". Таким образом, если вы перейдете из Windows в чувствительную к регистру файловую систему, у вас не будет проблемы, когда ColdFusion не сможет найти ваши файлы Application.cfm / cfc.

  2. Что касается вашего вопроса, то с вашей текущей структурой все файлы в папке "update" будут использовать файл Application.cfm. Он будет выполнен перед любым другим кодом в этих файлах. Если вы хотите, чтобы только некоторые страницы перенаправлялись на страницу с loginexpired, то я бы обычно создавал подпапку, помещая файл Application.cfm в эту папку, которая включает файл Application.cfm из родительской папки: <cfinclude template="../Application.cfm" />, Затем в этом файле вы добавите проверку безопасности. в родительском файле Application.cfm вы бы включили <cfapplication /> тег. Если вы используете сеансы, обязательно включите управление сеансами в своем теге cfapplication. (<cfapplication name="myappname" sessionmanagement="true" />)

  3. Вы действительно должны иметь файл Application.cfm или Applciation.cfc в корне вашего сайта. Если вы этого не сделаете, приложение будет работать без области приложения. ColdFusion имеет своего рода "безымянное" приложение, в котором оно будет работать без определенного имени приложения. Скорее всего, вы столкнетесь с нежелательными эффектами. Все приложения CF должны иметь именованное приложение, используя тег cfapplication или файл Application.cfc с установленным this.name.

  4. Если вы пишете это как новое приложение, я бы предложил вам использовать Application.cfc вместо Application.cfm. Вы будете иметь доступ к жизненным циклам приложения, сеанса и запроса (onApplicationStart/End, onSessionStart/End, onRequestStart/End), а также к обработчикам событий onError и onMissingTemplate, что даст вам больший контроль над потоком вашего приложения.

Когда страница.cfm загружается, она сначала ищет Application.cfc (современный, рекомендуемый объект Application) в той же папке и запускает ее. Если этот файл отсутствует, он будет искать Application.cfm (старый способ создания приложения.)

Если ни одна из этих папок не существует, она будет искать дерево в следующей папке и проверять там наличие Application.cfc, а затем Application.cfm, он будет повторять это до тех пор, пока не найдет его или не доберется до корня сервера.

Следовательно, ВСЕ файлы, которые вы перечислили в папке "update", будут автоматически использовать application.cfm. Только index.cfm, указанный в корне, не будет. (потому что ни Application.cfc, ни Application.cfm не находятся в этой папке.)

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

Я надеюсь, что это отвечает на ваш вопрос напрямую. В противном случае я согласен с тем, что сказал Шон.

Дополнительная информация о Application.cfc и Application.cfm доступна на сайте Adobe Coldfusion.

Я предлагаю вам сделать другой Appliction.cfm (pref Application.cfc) для публичной и безопасной зоны. Также определите другое имя для этих приложений.

Ой, орфографическая ошибка

Я предлагаю вам сделать другой Appliction.cfm (pref Application.cfc) для публичной и безопасной зоны. Также определите другое имя для этих приложений.

Другие вопросы по тегам