2009-06-24 12 views
2

Comment puis-je continuer à vérifier si un utilisateur est toujours actif, comme toutes les 1 minute? J'ai besoin de savoir quel utilisateur est actuellement actif et qui ne l'est pas! Je n'utilise pas le fournisseur d'adhésion ASP.NET! Disons que 3 utilisateurs maximum peuvent se connecter simultanément à partir de 3 emplacements différents, si le même utilisateur, qui est la 4ème connexion, essaie à nouveau de se connecter à partir d'un autre emplacement, je voudrais bloquer la 4ème connexion.Comment vérifier si un utilisateur est toujours actif?

J'ai aussi quelques problèmes à ce sujet! Si l'utilisateur débranche le câble de connexion ou ferme le navigateur, comment puis-je savoir si l'utilisateur est toujours actif?

Répondre

5

Je voudrais avoir plus de détails sur exactement ce que vous essayez d'accomplir, comme vous l'avez demandé une question assez vague. Cependant, je pense que la meilleure façon de déterminer si un utilisateur est actif est de vérifier si sa session ASP.NET est toujours en vie. Il n'y a pas de manière "précise" de tester si un utilisateur navigue toujours sur votre site, parce qu'il pourrait être assis là à lire, ou être AFK, ou être dans un autre programme sur son ordinateur ... des dizaines, sinon des centaines de scénarios pourraient exister du côté client. Cependant, la session ASP.NET de l'utilisateur ne restera que pendant une période de temps spécifique entre chaque activité de l'utilisateur (GET, POST, etc.) Habituellement, après 20 minutes, ASP.NET nettoiera la session des utilisateurs, et quand c'est le cas, il déclenche un événement Session_End qui peut être géré soit dans Global.asax, soit avec un HttpModule personnalisé. Vous pourrez alors marquer cet utilisateur comme inactif dans votre propre base de données, envoyer un e-mail ou faire tout ce que vous devez faire.

+0

merci pour votre réponse de toute façon! J'ai trouvé ma propre solution !! –

+0

Quelle était votre solution? –

1

Vous pouvez utiliser la propriété HttpResponse.IsClientConnected pour vérifier si l'utilisateur est toujours connecté à la session. Alternativement, vous pouvez définir un compteur sur Session_OnState à global.asax pour vérifier la session active disponible et faire votre travail en fonction de cela.

Questions connexes