Vous êtes ici : Accueil / Forums & ML / Forum Zope / Forum Général Zope / détruire ou vider une session

détruire ou vider une session

Remonter à Forum Général Zope
  • détruire ou vider une session

    Envoyé par airod le 27 Juin 2008 à 22:02
    bonjour,
    j'aimerai savoir comment je peux déclencher le vidage d'une session lorsque l'utilisateur se déconnecte.
    est il possible de détruire la session.

    en effet, l'application que je dev, est limitée en nombre de session simultanée. donc le but est de libérer les sessions aussitot l'utilisateur déconnecté.

    merci
  • Re: détruire ou vider une session

    Envoyé par ychaouche le 27 Juin 2008 à 23:50
    c'est pas fait automatiquement ça ?
  • Re: détruire ou vider une session

    Envoyé par airod le 28 Juin 2008 à 07:55
    non, une session a un time out fixé pour le site mais moi je veux pouvoir shooter les sessions avant le time out.
    ex: mon time out est de 20 mn.
    j'ai 5 session max dispo sur le site.
    5 utilisateurs se connecte,
    l'un des utilisateurs se déconnecte au bout de 12 mn
    un 6eme utilisateur veut se connecter a la 14 eme mn

    Mais là il ne peut pas, car toute les sessions dispo sont ouverte, malgré que seule 4 sont active.

    Il faut donc que lorsqu'un utilisateur se déconnecte, la session qu'il utilise soit détruite pour laisser un autre utilisateur se connecter.

    suis je assez clair dans mon exemple?
    merci
  • Re: détruire ou vider une session

    Envoyé par ychaouche le 28 Juin 2008 à 09:31
    Oui c'est très claire. Je continue à penser que lorsque l'utilisateur appuie sur un bouton de déconnexion sa session est automatiquement détruite par le browser_id_manager ou le CookieCrumbler ou un autre objet. C'est seulement dans le cas où il part sans prévenir que la session reste ouverte. Bref, si tu veux toi même détruire les sessions d'un utilisateur tu peux essayer :


    REQUEST.SESSION.invalidate()


    Si ça n'est pas suffisant, essayes :


    REQUEST.SESSION.getBrowserIdManager().flushBrowserIdCookie()


    Le premier code videra la session et permettra au 6ième utilisateur de prendre la session.

    Le deuxième code supprimera les informations qui identifient le navigateur, je ne sais pas si ce code est vraiment nécessaire, le premier devrait suffire.

    Bon courage.
Rendu par Ploneboard