2014-07-07 84 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

保留記住,儘管這些建議中的任何一個都能解決手頭上的問題,但在瀏覽器關閉時,實際上並不會「終止」會話,而是在瀏覽器重新打開時強制進行新的會話。舊的會話將仍然存在於內存中,直到超時。 –

相關問題