posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Redirigere l'utente su una pagina alla scadenza della Session

Ho raccolto recentemente una domanda su come si potesse redirezionare su una certa pagina l'utente a cui sia scaduta la sessione.
Effettivamente alcune volte nella Session_Start non sempre si hanno a disposizione tutte le informazioni per poter ricostruire i dati di una Session ormai scaduta. Soluzioni alternative certamente ci sono ma volendo scegliere questa strada, ecco una possibile soluzione.

L'evento PreRequestHandlerExecute viene eseguito prima di ogni richiesta di pagina ed ha in più il privilegio di poter accedere alla Session.
Se un valore arbitrario della session non è presente, significa che la session è nuova e quindi devo redirigere l'utente sulla pagina prestabilita (Webform1.aspx nell'esempio).

Nel global.asax.cs:

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{
   string Uri = HttpContext.Current.Request.Url.AbsoluteUri.ToLower();
   if(Uri.EndsWith("WebForm1.aspx".ToLower()))
      return;
   if(Session["test"] == null)
      Response.Redirect("~/Webform1.aspx");
}

I più critici si domanderanno perchè il ToLower() sulla stringa literal. Il motivo è solo un promemoria per chi dovesse metterci una stringa, una funzione o quant'altro. Occhio insomma a non dimenticarsi di confrontare le stringhe con lo stesso 'case'.
Ovviamente nella webform1.aspx.cs è poi necessario inizializzare quel valore in modo arbitrario:

Session["test"] == “1”;

Banale, quasi scontato, ma a volte utile ...

Print | posted on mercoledì 22 settembre 2004 22:03 | Filed Under [ ASP.NET [Italiano] ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET