2009-12-30 191 views
1

我的会话被称为“Session.MM_Username”。我想在浏览器关闭时“杀死”它。有人可以解释我可能会这样做吗?作为参考,这里是我的Application.cfc代码:在浏览器上关闭会话关闭

<cfcomponent> 
    <cfset this.applicationname="cfGossip"> 
    <cfset this.applicationname="true"> 
    <cfset this.sessionManagement = true /> 
</cfcomponent> 

回答

-1

基本上,您需要创建一个“会话cookie” - 即没有过期日期的cookie。当浏览器窗口关闭时,它将被删除。

我不知道如何与CF做了手,但是这可能会帮助:http://www.google.com/search?q=cold+fusion+session+timeout

可能通过设置:

this.sessiontimeout = "" 
+1

大卫的理念是正确的,但在ColdFusion中它使用最好的实施亨利解决方案:J2EE servlet会话管理,它会自动为您创建和处理会话cookie。 – 2009-12-30 23:53:05

1

你CFID和CFTOKEN饼干需要在会话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#" /> 
+0

如果您使用Application.cfc,请在onSessionStart() – Henry 2009-12-31 02:35:37

0

请参考以下链接:http://thisara.me/2015/12/21/session-management-in-j2ee/

在J2EE会话保持传递一个叫做客户端和服务器之间的jsessionid令牌。有两种分享方式;在URL

  1. 通JSESSIONID
  2. 上的Cookie

通JSESSIONID如果JSESSIONID保持对用户浏览器会话cookie(这是留在浏览器内存中),在关闭浏览器的所有会议都被销毁。但是,如果您维护存储在客户端PC的磁盘空间中的持久cookie,则关闭后会话不会被销毁。

0

如有疑问,本有答案。 http://www.bennadel.com/blog/1131-ask-ben-ending-coldfusion-session-when-user-closes-browser.htm

基本上,“你不能强迫一个会话结束,因为会话不是正在运行的东西(在你认为一个Windows应用程序运行的方式)。这些都只是得到的内存空间块我们可以做的最好的办法是防止用户的浏览器在页面刷新或页面加载时重新关联给定的会话,这将使用户创建一个新的会话,但不会在技术上结束旧的会话“。

只是使用会话管理,足够长的时间做什么用户可以做,但不是这么长时间,它是天活动的会话长度,