Gli HTTP Modules

di: Giuseppe Marchi     11 Aprile 2007

Gli HTTP Module di ASP.NET sono oggetti che vengono chiamati ad ogni richiesta effettuata su qualsiasi tipo di risorsa della nostra applicazione Web. In un articolo precedente abbiamo approfondito la conoscenza degli HTTP Handler, una parte molto importante della pipeline di ogni richiesta ASP.NET, con i moduli siamo in grado di modificare e quindi estendere il ciclo di vita di ogni richiesta HTTP e di metter mano a particolari eventi di questo ciclo.

In un modulo è possibile accedere agli stessi eventi della pipeline di richiesta che gestiamo nel Global.asax. In questo file sono presenti infatti tutti gli event handler per gestire gli eventi scatenati durante le richieste HTTP (BeginRequest, EndRequest, etc.).

È sconsigliabile però usare il Global.asax per almeno due ragioni:

  • è decisamente scomodo in fase di deployment
  • viene meno la modularità dell'applicazione Web (nel .NET Framework in generale, abbiamo classi specifiche per ogni tipo di funzionalità).

Proprio per questi motivi, abbiamo la possibilità di creare i nostri moduli personalizzati che reagiscano ad eventi precisi durante le richieste HTTP per eseguire particolari operazioni in base alle nostre esigenze.

Il runtime di ASP.NET fa un uso decisamente elevato degli HTTP Module. Basti pensare che tutte le features come l'autenticazione (anonima, integrata o tramite Form), le autorizzazioni su file e percorsi, i ruoli, i profili, la gestione della sessione e della cache, sono tutte implementate attraverso degli HTTP Module.

Tale scelta è stata sicuramente dettata dalla possibilità di aggiungere funzionalità particolari alla pipeline di esecuzione di ogni richiesta HTTP.

Come per gli HTTP Handler, anche gli HTTP Module hanno una sezione del web.config a loro riservata per permetterci di visualizzare quelli registrati di default nel runtime di ASP.NET, per eliminarne (in caso non ci volessimo avvalere di qualche funzionalità di base del framework) e per registrare i nostri personalizzati. Questa sezione di configurazione è rappresentata dall'elemento <httpModules />, figlio diretto dell'elemento <system.web />.

Per visualizzare i moduli predefiniti, basta raggiungere il percorso

C:\WINDOWS\Microsoft.NET\Framework\Vx.x.xxxxx\CONFIG

e visualizzare contenuto del file web.config (file unico per tutte le applicazioni web installate sul server).

Questi i principali HTTP Module utilizzati dal framework di ASP.NET:

  • FormsAuthenticationModule - Modulo per gestire l'utilizzo dell'autenticazione tramite le Forms (rappresentato dall'omonima classe, presente sotto il namespace System.Web.Security).
  • ProfileModule - Modulo per gestire l'utilizzo dei profili nel sito web (rappresentato dall'omonima classe, presente sotto il namespace System.Web.Profile).
  • UrlAuthorizationModule - Modulo in grado di autorizzare o negare l'accesso all'utente su particolari percorsi richiesti (rappresentato dall'omonima classe, presente sotto il namespace System.Web.Security).
  • SessionStateModule - Modulo per l'utilizzo della sessione nell'applicazione web (rappresentato dall'omonima classe, presente sotto il namespace System.Web.SessionState).
  • OutputCacheModule - Modulo per l'utilizzo dei meccanismi di caching propri di ASP.NET (rappresentato dall'omonima classe, presente sotto il namespace System.Web.Caching).

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto