Nel mio ultimo post abbiamo visto 3 tecniche per ottenere il risultato scritto nel titolo. Come giustamente Daniele mi ha fatto notare, tra quelle illustrate mancava quella più importante, elegante e, sopratutto, corretta: un HttpModule. (Dovevo essere veramente stanco per non proporla subito).
Con questo metodo possiamo estendere la pipeline di ASP.NET senza essere assolutamente "invasivi" nei confronti delle nostre applicazioni (al contrario di quanto avverrebbe usando un httphandler). Creando una nuova classe che implementa l'interfaccia IHttpModule, possiamo aggiungere un nuovo delegato all'evento BeginRequest che non fa altro che aggiungere la nostra al Response.Filter.
Vediamo un po' di codice che, come sempre, è un ottimo aiuto.
public class MyHttpModule : IHttpModule{
public void Init(HttpApplication application){
application.BeginRequest += new EventHandler(BeginRequest);
}
public void Dispose(){}
public void BeginRequest(Object sender, EventArgs e){
HttpApplication app = ((HttpApplication)sender);
Filtro rf = new Filtro(app.Context.Response.Filter);
app.Context.Response.Filter = rf;
}
}
Il codice della classe Filtro è presente nel precedente post.
P.S. Ringrazio la squadra dell'Inter che domenica scorsa mi ha fatto perdere 750 euro con il pareggio a Siena. Grazie di cuore.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Entity Framework è lento! mmmmh, probabilmente sei tu che lo stai usando male!, il 7 ottobre 2022 alle 10:55
- Cosa penso di ASP.NET vNext, il 3 settembre 2014 alle 09:00
- E così AngularJS e DurandalJS convergono..., il 7 maggio 2014 alle 11:51
- Usare fiddler per simulare le risposte da un servizio, il 28 ottobre 2013 alle 08:00
- Tip: cosa fare quando Entity Framework Code-First Migrations smette di funzionare, il 18 gennaio 2013 alle 11:04
- Visual Studio 11 beta: le novità di Entity Framework 5.0 e WCF 4.5, il 2 marzo 2012 alle 23:08