2014-07-07 76 views
0

我正在寻找解决方案,以便在用户关闭浏览器时如何让ColdFusion结束用户的会话。在Coldfusion中退出浏览器时终止会话变量

换句话说,当用户退出浏览器时,我想让他们重新登录。

我已经尝试了许多解决方案无济于事。

任何帮助表示赞赏。

下面是我在application.cfm中插入的最新代码,它将重置会话变量。不幸的是它没有奏效。

<cfif IsDefined("Cookie.CFID") AND IsDefined("Cookie.CFTOKEN")> 
    <cfset Variables.cfid_local = Cookie.CFID> 
    <cfset Variables.cftoken_local = Cookie.CFTOKEN> 
    <cfcookie name="CFID" value="#Variables.cfid_local#"> 
    <cfcookie name="CFTOKEN" value="#Variables.cftoken_local#"> 
</cfif> 


    <CFPARAM NAME="session.allowin" DEFAULT="false" /> 
    <CFPARAM NAME="session.user_id" DEFAULT="0" /> 


    <cfif session.allowin neq "true"> 
     <cfif ListLast(CGI.SCRIPT_NAME, "/") EQ "login.cfm"> 
     <cfelseif ListLast(CGI.SCRIPT_NAME, "/") EQ "login_process.cfm"> 
     <cfelse> 
      <!--- this user is not logged in, alert user and redirect to the login.cfm page ---> 
      <script> 
       alert("You must login to access this area!"); 
       self.location="login.cfm"; 
      </script> 
     </cfif> 
    </cfif> 
+0

J2EE会话变量您是否尝试切换到的Application.cfc和使用OnSessionStart法? –

+0

这并不直接回答你的问题,但它应该为你提供一个相关的出发地... http://www.bennadel.com/blog/1847-explicitly-ending-a-coldfusion-session.htm –

回答

4
+5

保留记住,尽管这些建议中的任何一个都能解决手头上的问题,但在浏览器关闭时,实际上并不会“终止”会话,而是在浏览器重新打开时强制进行新的会话。旧的会话将仍然存在于内存中,直到超时。 –

相关问题