2009-09-24 9 views
2

Je dois afficher une alerte pour un utilisateur, s'il a été sur mon site pendant cinq minutes et ne s'est pas connecté.(ASP.NET) Comment déterminer la durée pendant laquelle un utilisateur a été sur le site?

Comment faire?

Est-ce que j'ajouterais quelque chose à la session sur Application_Start? Existe-t-il un moyen de vérifier la durée de la session de quelqu'un? Peut-être mettre quelque chose dans l'en-tête/maître page et si elle dépasse cinq minutes jeter l'alerte?

Toute aide serait appréciée.

Merci.

EDIT ---

Ce que je fini par faire utilisait l'aspic: contrôle minuterie trouvé avec le AjaxControlToolkit.

Répondre

2

La réponse réside dans Globals.asax, mais Application_Start n'est-ce pas. Cela est utilisé lorsque l'application ASP.NET démarre réellement.

J'ajouterais DateTime.Now à la session dans la méthode Session_Start dans Globals.asax. Ensuite, vous pouvez soit le vérifier sur chaque chargement de page (par exemple, dans une page de base ou l'événement onload de la page principale), soit utiliser Ajax pour interroger le serveur.

7

Application_Start se déclenche lorsque l'application IIS est initialement chargée. Session_Start se déclencherait à chaque nouvelle session démarrée.

Si vous stockez l'heure actuelle dans la session en Session_Start vous pouvez vérifier soit une charge de page ou avec un appel ajax pour déterminer si cinq minutes se sont écoulées sans les connecter.

+0

D'accord avec Bela, même si Application_Start ne tient pas vraiment compte de la solution. J'ajouterais également que si vous n'utilisez pas l'état de session sur le site, vous pouvez utiliser un champ masqué ou une valeur de chaîne de requête pour passer entre les appels de page, soit une date/heure codée, soit un lien vers un enregistrement contenant la date/temps. –

0

Si vous voulez vraiment un Vérification de 5 minutes, vous devez enregistrer un rappel ajax de 5 minutes à partir de Session_Start. La partie difficile est d'avoir une page chargée et prête qui peut le recevoir quand il se déclenche.

Interroger le serveur avec AJAX est probablement l'approche la plus courante.

Questions connexes