asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 8878
ASPCode.it - Store

  > > Tips

Eseguire codice ad ogni richiesta di pagina
di Maurizio Ferrera

Data di pubblicazione: 04/03/2004        Voto della community: 4,67 (Votanti: 1)


Spesso abbiamo l'esigenza di eseguire del codice ad ogni richiesta di una pagina della nostra applicazione. Potremmo voler ad esempio registrare gli accessi a tutte le pagine richieste a fini statistici oppure eseguire dei controlli prima che venga eseguito il codice delle nostre pagine aspx. ASP.NET crea automaticamente istanze della classe HttpApplication e le assegna alle varie richieste HTTP; ciascuna istanza espone diversi eventi durante l'intero ciclo di vita di una richiesta HTTP, nell'ordine:

BeginRequest
AuthenticateRequest
AuthorizeRequest
ResolveRequestCache
AcquireRequestState
PreRequestHandlerExecute
PostRequestHandlerExecute
ReleaseRequestState
UpdateRequestCache
EndRequest

Rimandiamo alla documentazione per la descrizione di ognuno. Ci basti sapere che PreRequestHandlerExecute Ŕ l'ultimo evento prima che venga eseguito il codice di una pagina.aspx o di un webservice, etc, per la precisione prima che la richiesta venga intercettata dall'Handler HTTP appropriato per una certa estensione del file richiesto.
Questi Eventi possono essere intercettati in Global.asax con la notazione:

Application_nomeEvento (appropriato EventArgument)

ad esempio in Global.asax:

<script runat="server">

void Application_PreRequestHandlerExecute () {

  // fai qualcosa

}

</script>

Supponiamo di voler verificare in tutte le nostre pagine che un utente si sia loggato e avvisare di conseguenza. Ci serviamo dell'ultimo evento (PreRequestHandlerExecute) prima che la pagina venga eseguita, per inserire il controllo:

<%@ Application language="C#" %>
<script runat="server">

// Global.asax

public void Application_PreRequestHandlerExecute (Object sender, EventArgs e) {

        if (Session["nominativo"]==null)
            Response.Write ("NON SEI LOGGATO");
        else Response.Write ("Bentornato " + (string)Session["nominativo"]) ;
}

</script>







Utenti connessi: 8878