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

Dotnet Discussion :

[WebForms][Gestion Session] Savoir si un utilisateur est en ligne


Sujet :

Dotnet

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut [WebForms][Gestion Session] Savoir si un utilisateur est en ligne
    Bonjour a tous,

    Ma question à été déja évoqué différement mais je n'ai pas trouvé de solution a ce pb.

    Voila je developpe un site sur lequel il y a des membres. Et je voudrais savoir pour un membre particulier si il est en ligne ou pas. Pour ce faire j'ai commencer a élaborer la strategie suivante ;-) :

    1/Quand l'utilisateur se loggue, je vais mettre a "true" le champ isOnline sur la table des Membres (SQLServer).
    2/Et ensuite j'ajoute en Session son numéro de Membre.

    Jusque la super tout va bien, mais c'est apres que ca se complique.

    3/L'utilisateur quitte sa session de navigation en cliquant sur "déconnection" (bien éduqué ce monsieur) du coup je suis a meme d'attraper en vole son action et d'aller mettre à "false" le champ isOnline en base.

    Mais le probleme survient quand l'utilisateur a coupé son Navigateur et tout de suite apres reviens sur le site. Forcement il a perdu sa Session donc il doit se reconnecter. Et la je remet a jour le "isOnline" à true.

    Seulement au bout d'un certain temps sa PREMIERE session arrive a expiration et tombe dans la méthode Session_End du Global.asax. Sur laquelle je récupere l'id du Membre (Session["ID_MEMBRE"]). Et je fais mon update a "False" de IsOnline.

    Et la je tombe en incoherence car mon utilisateur est encore en train de naviguer sur le site !!!

    Je sais pas si kk aurait une solution a m'apporter mais je seche un peu.

    Merci par avance en tout cas.

    B.

  2. #2
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    je suis pas convaincu que la stratégie que tu as retenu soit la meilleure, j'ai un doute, mais comme d'emblée comme ça j'ai pas mieux à te proposer on va essayer d'améliorer ton histoire : proposition simple, au lieu de gérer un champ booléan dans ta table... utilise une champ integer !
    Quand il y a connexion : incrémentation, quand il y a fin de session : décrémentation.
    Moralité le test pour savoir si qqun est en ligne est "champConnecté > 0".
    Un user connecté pourra avoir une valeur de 2 dans ton exemple.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Effectivement Merlin ton idée me semble bonne, de plus mon champ en Base est déja un Integer !!!

    Sinon je me disait que je pouvais générér un numéro unique a chaque login action, que je stockerai a la fois dans un cookie et aussi dans la session.

    Ainsi dans le Session_End je compare le numéro en Session et le numéro dans le cookie. Si il est different, je ne fais rien si c'est le meme je flag a O le champ isOnline.

  4. #4
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    oui bien sûr, mais je pense que c'est une complication inutile là où le champ integer incrémenté/décrémenté est extremement simple à mettre en oeuvre.

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci Merlin j'adopte ta technique, et je flag à "Résolu"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Win32/C] Savoir si un utilisateur est membre d'un groupe
    Par David.Schris dans le forum Windows
    Réponses: 3
    Dernier message: 21/09/2006, 13h15
  2. [Active Directory] Savoir si un utilisateur est connecté
    Par bl4ckwolf dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 15/08/2006, 16h14
  3. Savoir si l'utilisateur est connecté au Web
    Par Spartan03 dans le forum C++
    Réponses: 14
    Dernier message: 27/07/2006, 21h17
  4. Réponses: 4
    Dernier message: 14/10/2005, 19h53
  5. Savoir si l'utilisateur est administrateur
    Par Don ViP dans le forum Windows
    Réponses: 2
    Dernier message: 26/04/2004, 13h20

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