2009-10-27 13 views
0

Nous devons rediriger l'utilisateur vers une page expirée à chaque fois que la session ASP.Net expire. Nous récupérons la majeure partie de notre contenu via les appels AJAX et l'utilisateur ne quitte jamais la page par défaut.
Y at-il un moyen de détecter un délai d'attente de session côté client (en Javascript) sans apporter de modifications au code côté serveur. Pouvons-nous vérifier le code d'état HTTP?
Quel code d'état ASP.Net (MVC) définit-il lorsqu'il existe un délai d'attente de session?

Cordialement,

+0

page maître balise Body Utilisez onload = "SessionTimeOuts()" J'espère que cela peut aider. http://stackoverflow.com/questions/1490879/detection-session-expiry-on-asp-net-mvc –

Répondre

0

par asp.net par défaut ne renvoie pas un code spécial d'état lorsque les temps de session sur. Vous pouvez détecter cela sur le serveur et définir un code d'état spécifique si la session a expiré. Vous pouvez également définir un en-tête personnalisé ou composer le contenu d'une manière spécifique lorsque la session expire pour informer le code du côté client.

1

Vous pouvez simplement définir une minuterie égale au paramètre de délai d'attente de session sur votre serveur. Si l'utilisateur est actif, la session n'expirera jamais, s'il ferme le navigateur, elle se terminera automatiquement. Donc, le seul cas que vous avez est quand la page est ouverte, mais l'utilisateur ne fait rien. Dans ce cas, vous pouvez conserver la session active tant que vous continuez à envoyer des requêtes ajax (vous pouvez le faire en arrière-plan) ou définir une horloge indiquant l'heure d'inactivité.

0

J'ai obtenu un scénario similaire et le code suivant a résolu mon problème. // Dans la page maître: // 180 correspond au délai d'expiration de la session .... function SessionTimeOuts() { self.setTimeout ("RedirectToLogin();", '180'); }

function RedirectToLogin() { 
     window.location.href = '../login.aspx'; 
    } 

</script> 

dans