Global.Asax - Application_BeginRequest
Permet d’intercepter les appels, cependant, l’objet session n’est pas encore disponible.
Plus d'info.
Global.Asax – Application_PreRequestHandlerExecute
C’est la place la plus sur pour intercepter les appels avant l’appel de la page.
A ce stade, l’objet session est disponible (mais pas dans toutes les conditions).
Attention:
PreRequestHandlerExecute intercepte tous les appels sur l’application (CSS et image inclus, dans ce cas Session n’est pas disponible).
Il existe également des cas ou HttpContext.Current n’est pas accessible.
Plus d'information sur l'article Working with ASP.NET global.asax file ou ce ce billet.
Voici un petit bout de code issus de mes quelques premiers tests dans global.asax
void Application_PreRequestHandlerExecute(object sender, EventArgs e) { // Code that runs when a new session is started HttpContext ctx = HttpContext.Current; if( ctx != null ) if( ctx.Request.Url.ToString().ToLower().IndexOf( ".asp" ) > 0 ) // incomming request must be asp page if( ctx.Request.Url.ToString().ToLower().IndexOf( "default.asp" ) <= 0 ) // incomming request cannot be defautlt.asp if (Session["username"] == null) { if (Session["username"] == null) { string sJumpUrl = ctx.Request.Url.ToString(); Session["AfterLoginUrl"] = sJumpUrl; // Display the Login Box instead Server.Transfer("Default.aspx"); } } }
Aucun commentaire:
Enregistrer un commentaire