IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[2.0] afficher le temps restant d'une session utilisateur


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut [2.0] afficher le temps restant d'une session utilisateur
    Bonjour,


    Chaque utilisateur qui se logue sur notre site a une session qui lui est propre (normal).

    Je voudrais pouvoir afficher dans un coin de la page le temps restant avant l'expiration de la session utilisateur.

    Comment voyez vous la solution à ce problème ?

    Je pensais à :

    1) mettre une iframe (position absolue) sur la page, qui affiche un compteur (à rebours..). Cette iframe (donc cette page) se rafraichirait toutes les secondes via un aller retour serveur. Ce dernier nous renseignerait sur le temps restant.

    d'abord il faut que je trouve la commande C# qui me donne ce temps restant.
    Ensuite, je me demande si le fait de faire cet aller retour serveur ne va pas renouveller le timeout de ma session, et donc tout ceci pour rien.

    2) Dans ce cas, je peux mettre un simple compte à rebours (sans aller retour serveur) sur un endroit de ma page (div ou iframe) qui part du timeout de session définie sur le serveur jusqu'à zero. Puis à chaque aller retour serveur, je reinitialise le compte à rebours. Le problème serait alors que si l'utilisateur accède au site via deux fenêtres de navigateur en même temps, l'un des deux compteurs ne sera plus bon et enduit en erreur l'utilisateur.

    3) je n'ai pas encore trouvé d'autres solutions.. une vague idée de thread, mais ça rejoint le problème du 1) peut être..

    D'avance merci si vous pouvez m'aider

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    En effet, ta première solution ne fonctionnera pas, puisque chaque connexion au serveur réinitialisera le temps de connexion...

    Ta solution 2 est la bonne pour moi. Pour ce qui est de l'accès via deux fenêtre, cela ne posera pas de problème, puisque, si je ne me trompe, chaque fenêtre sera à l'origine d'une session qui lui est propre :-)


    Si par contre, ton but est uniquement qu'un session n'expire pas, rien ne t'empêche de faire, en background une petite méthode AJAX qui, après un timeout, déclenche un callback sur le serveur, ce qui réinitialise le timeout de session.. Mais attention, cela induit que tant que la fenêtre utilisateur reste ouvert, la session reste active, ce qui peut être potentiellement dangereux pour le serveur
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    Merci Pongten,

    tu as raison la première solution ne semble pas la bonne.

    Pour la deuxième, c'est vrai que notre site fonctionne en cookieless donc avec un ID de session dans l'url. (la session utilisateur commence dès la page de login et pas après qu'il se soit loguer.. ).

    Donc tu as raison. Mais il reste le cas ou l'utilisateur s'amuse à faire un copier coller de l'url de la première fenetre dans la deuxieme.. dans ce cas il y aura la même session sur les deux fenêtres et un des 2 compteurs sera faux.

    si je ne trouve pas d'autres solutions, j'opterai quand même pour la deuxième je pense.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    il y a pas mal de liens sur google qui traite du sujet.

    celui la par exemple :
    http://radio.javaranch.com/pascarell...592884938.html

    ça rejoint la solution 2 dont on a parlé..

    je vais y réfléchir.

    je reste ouvert à toutes autres idées

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    il est vrai que la 2eme solution reste viable pour ne pas trop surcharger le serveur de nombreux aller retours.
    Si tu fais ton affichage de temps en javascript et qu'il ouvre une deuxieme page tu n'as de toutes facon aucun moyen de mettre a jour le 1er compteur sans utiliser d'ajax.

    Tu n'as pas tellement de choix. de plus en plus d'internaute navigue sur les sites avec plusieurs onglets. peut-etre que l'affichage de la fin de la session n'est pas une si bonne idée ^^ sans méchanceté bien sur. car j'aime bien le principe.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    oui c'est vrai.

    autre chose : quand on fait clic droit > propriété sur une page : les timers javascript sont arrêtés et reprennent quand on a fermé la fenêtre propriétés..
    embêtants..

Discussions similaires

  1. [MySQL] Afficher le temps restant avec time
    Par mecmec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/09/2011, 11h16
  2. Durée de vie restante d'une session
    Par Oberown dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/06/2009, 13h54
  3. Réponses: 1
    Dernier message: 20/06/2008, 03h05
  4. Récupérer la durée d'une session utilisateur
    Par gazza dans le forum Langage
    Réponses: 3
    Dernier message: 20/09/2006, 10h22
  5. Afficher le "temps restant" sur une longue action
    Par illuzmax dans le forum Langage
    Réponses: 2
    Dernier message: 04/07/2005, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo