我的会话名为“Session.MM_Username”。我希望在浏览器关闭时“杀死”它。有人可以解释我怎么做这个吗?作为参考,这是我的Application.cfc代码:
<cfcomponent>
<cfset this.applicationname="cfGossip">
<cfset this.applicationname="true">
<cfset this.sessionManagement = true />
</cfcomponent>
答案 0 :(得分:2)
使用J2EE servlet会话管理
请参阅幻灯片30,或观看http://www.12robots.com/index.cfm/2009/9/17/ColdFusion-Application-Security-at-the-Boston-CFUG--Last-Night
处的连接录制答案 1 :(得分:1)
您的CFID和CFTOKEN Cookie需要设置为会话Cookie,如下所示:
<cfapplication
sessionmanagement="Yes"
name="MyApplication"
setclientcookies="No"
sessiontimeout=#CreateTimeSpan(0, 0, 1440, 0)#>
<cfcookie name="CFID" value="#SESSION.CFID#" />
<cfcookie name="CFTOKEN" value="#SESSION.CFTOKEN#" />
答案 2 :(得分:0)
请参阅此链接:http://thisara.me/2015/12/21/session-management-in-j2ee/
在j2ee会话中,通过在客户端和服务器之间传递一个名为jsessionid的令牌来维护。有两种方式可以分享这个;
如果jsessionid在用户浏览器上的会话cookie(保留在浏览器内存上)上维护,则在关闭浏览器后,所有会话都将被销毁。但是如果你维护一个存储在客户端pc的磁盘空间中的持久性cookie,会话将不会在关闭时销毁。
答案 3 :(得分:0)
如果有疑问,Ben有答案。 http://www.bennadel.com/blog/1131-ask-ben-ending-coldfusion-session-when-user-closes-browser.htm
基本上,&#34;你不能强制会话结束,因为会话不是正在运行的东西(就像你认为Windows应用程序正在运行一样)。这些都只是与不同用户相关联的内存空间块。我们所能做的最好的事情就是阻止用户使用&#39;浏览器在页面刷新或页面加载时与给定会话重新关联。这将使用户创建一个新会话,但在技术上不会结束旧会话。&#34;
只使用会话长度足够长的会话管理来完成用户可能正在做的事情,但不要太久以至于它活动了几天,
答案 4 :(得分:-1)
基本上,您需要创建一个“会话cookie” - 即没有到期日期的cookie。当浏览器窗口关闭时,它将被删除。
我不知道怎么用CF做这件事,但这可能会有所帮助:http://www.google.com/search?q=cold+fusion+session+timeout
可能通过设置:
this.sessiontimeout = ""