Как обычно, Бен Надель уже опубликовал ответ ...
http://www.bennadel.com/blog/1847-Explicitly-Ending-A-ColdFusion-Session.htm
Есть несколько опций, некоторые из которых достаточно безопасны, другие используют скрытые методы, которые не обязательно будут присутствовать в будущей версии ColdFusion или других механизмов CFML. Вы можете заметить, что я упоминаю об этом в его посте, потому что я люблю возиться с этими скрытыми методами. Но если вы хотите сделать все правильно (больше на будущее / на выключатель двигателя), я бы предложил альтернативные методы Бена.
Редактировать
Почти забыл, я создал функцию, чтобы остановить текущую сессию, используя другой метод (не упоминание в блоге Бена Наделя). Это все еще недокументированная функция, но является улучшением, поскольку она мгновенно останавливает сеанс, вместо того, чтобы установить его на 1 секунду для тайм-аута.
http://misterdai.wordpress.com/2010/06/15/cf-sessionstop-ending-a-cf-session/
Дальнейшее редактирование
Просто кратко объясним различные методы на случай, если связанные сайты когда-либо не получатся.
Подводя итог, как остановить сеанс в его треках ...
- Установите для sessionTimeout значение 1 секунда.
- Отметить целевой сеанс (например, session.remove = true)
- Обнаружение и установка низкого тайм-аута (application.cfc)
if (StructKeyExists(session, 'remove') And aession.remove) {
this.sessionTimeout = CreateTimeSpan(0, 0, 0, 1);
}
- Удалите связь между клиентом и сеансом, удалив файлы cookie CFID / CFTOKEN.
- Аналогично выше, но с использованием session.setMaxInactiveInterval (1)
- Недокументированный, работает, но может меняться без уведомления между версиями.
- Более гибкий, не обязательно иметь код в файле application.cfc.
- Еще нужно удалить куки.
- Принудительно ColdFusion немедленно удалить сеанс.
- Более широкое использование недокументированных функций, которые могут ломаться между версиями.
- Может использоваться где угодно, не нужно беспокоиться о файлах cookie или тайм-ауте.
Код для захода на посадку 3 ...
<cffunction name="sessionStop" output="false">
<cfset var local = StructNew() />
<cfif Not StructKeyExists(application, 'applicationName')>
<cfthrow message="Application.applicationName is missing." />
</cfif>
<cftry>
<cfset local.sid = session.cfid & '_' & session.cftoken />
<cfset local.jTracker = CreateObject('java', 'coldfusion.runtime.SessionTracker') />
<cfset local.jTracker.cleanUp(application.applicationName, local.sid) />
<cfcatch type="any">
<cfthrow message="Error stopping session, may not exist." />
</cfcatch>
</cftry>
</cffunction>