2009-12-30 15 views
1

Ma session s'appelle "Session.MM_Username". Je veux le 'tuer' quand un navigateur est fermé. Quelqu'un peut-il expliquer comment je pourrais faire cela? Pour référence, voici mon code Application.cfc:Kill Session à la fermeture du navigateur

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

Répondre

-1

Fondamentalement, vous devez créer un "cookie de session" - à savoir, un cookie sans date d'expiration. Il sera supprimé lorsque la fenêtre du navigateur est fermée.

Je ne sais pas comment faire de la main avec CF, mais cela aidera probablement: http://www.google.com/search?q=cold+fusion+session+timeout

éventuellement par:

this.sessiontimeout = "" 
+1

concept de David est correct, bien que dans Coldfusion il est mieux mis en œuvre à l'aide d'Henry solution: gestion de session de servlet J2EE, qui créera et traitera automatiquement les cookies de session pour vous. –

1

Vos cookies cfid et CFTOKEN doivent être fixés à des cookies de session comme ceci:

<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

Si vous utilisez Application.cfc, faites-le dans onSessionStart() – Henry

0

Référez ce lien: http://thisara.me/2015/12/21/session-management-in-j2ee/

En session j2ee est maintenue en passant un jeton appelé jsessionid entre le client et le serveur. Il y a deux façons de partager cela;

  1. passe jsessionid sur l'URL
  2. passe jsessionid sur Cookie

Si la jsessionid est maintenue sur cookie de session (qui est de rester sur la mémoire du navigateur) sur le navigateur de l'utilisateur, lors de la fermeture du navigateur toutes les sessions être détruit. Mais si vous conservez un cookie de persistance qui stocke dans l'espace disque du PC client, la session ne sera pas détruite à la fermeture.

0

En cas de doute, Ben a la réponse. http://www.bennadel.com/blog/1131-ask-ben-ending-coldfusion-session-when-user-closes-browser.htm

Fondamentalement, « vous ne pouvez pas forcer une session à la fin, car une session est pas quelque chose qui est en cours d'exécution (de la manière que vous pensez d'une application Windows comme la course). Ce sont juste des suites de l'espace mémoire qui obtiennent Le mieux que nous puissions faire est d'empêcher le navigateur d'un utilisateur de se réassocier à une session donnée lors de l'actualisation de la page ou du chargement de la page, ce qui amènera l'utilisateur à créer une nouvelle session. session."

Juste assez grâce à la gestion de la session avec une durée de la session de temps pour faire ce que l'utilisateur peut faire, mais pas si longtemps qu'il est actif pendant plusieurs jours,