La détection d'expiration de Session sur ASP.NET MVC
J'ai construit un panier qu'utilise l'État de Session pour garder le panier des données pendant que l'utilisateur navigue sur le store.
J'ai un problème où, si je laisse la fenêtre du navigateur ouverte pendant une longue période sur l'étape 1 du panier, puis appuyez sur la touche "aller à l'étape 2", mes actions jeter une erreur car l'etape 2 action suppose que la session n'a pas expiré et que le ShopCart objet est dans l'état correct.
Je voudrais que ce scénario sera plus agréable pour mes utilisateurs, mais je pense que j'ai besoin de quelque façon détecter si la session a expiré alors que sur la prochaine demande je peux les jeter à l'Étape 1.
J'ai trouvé le code suivant, qui prétend résoudre le problème, mais il ne fonctionne pas pour moi.
La IsNewSession condition est vraie, mais la condition
if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)) {
//handle expired session
}
renvoie toujours false et il n'a jamais gère la session non valide. Je suis confus.
Est-ce possible dans ASP.NET (et MVC)?
Vous devez vous connecter pour publier un commentaire.
Voie 1
Mettez ce code dans les
Init
/Load
cas de la Page 2...2
Alternative, vous pouvez vérifier si le
Session
objet existe avant de continuer à travailler avec elle dans la Page 2, comme ceci:Le Roi 's réponse ne fonctionne pas pour moi. J'ai ajouté
FormsAuthentication.SignOut()
dansOnActionExcuting()
. LeResponse.Redirect
ne fonctionnera pas!C'est ma méthode complète