2010-04-03 4 views
1

Je voudrais faire rediriger pour se connecter lorsque la fin de la session en cours et que config doivent travailler à tout Voir et Controller.page Redirect lorsque la fin de la session dans ASP.Net MVC

Mon code actuel Global.asax:

protected void Session_End(object sender, EventArgs e) 
{    
    Session.Abandon(); 
    //GetPath() is getting currently path 
    // eg. http://localhost/mymvcproject 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 

Répondre

0

Je ne pense pas que votre code peut fonctionner parce que Session_End() est le plus souvent invoqué lorsqu'il n'y a pas demande du navigateur après une spécifique durée. Par conséquent, Response ne correspondrait à aucune requête particulière et, par conséquent, aucune redirection.

Essayez plutôt de gérer Application_Start et vérifiez la propriété Session.IsNew. Si c'est true, effectuez la redirection. (Pensez à faire cela en invoquant FormsAuthentication.RedirectToLoginPage().)

Lors de la vérification de IsNew, prenez garde à la situation décrite here. Je suppose que l'attribution d'une variable de session fictive pendant le processus de connexion permettra de résoudre ce problème, même si je ne me suis pas essayé.

2

Vérifiez les paramètres suivants sous <system.web> dans votre fichier web.config:

<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState> 

puis remplir le texte suivant dans votre Site.master

if (Session.IsNewSession) 
{ 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 
Questions connexes