Visualizzare l'errore esteso di ASP.NET in base all'indirizzo IP di connessione

di , in ASP.NET, HttpModule, C#,

Abbiamo analizzato diversi sistemi per registrare eventuali errori in un'applicazione ASP.NET.
Questa volta prenderemo in analisi l'utilizzo di un HttpModule, che dal punto di vista architetturale si presenta come una soluzione certamente migliore, perchè garantisce l'esecuzione della routine associata ad uno degli eventi della classe HttpApplication ma allo stesso tempo è facilmente attivabile o disattivabile attraverso il web.config, in questo modo:

<httpModules>
 <add type="classname, assemblyname" name="modulename"  />
</httpModules>

E' lo stesso meccanismo che ASP.NET utilizza, internamente, per rendere disponibili funzionalità come l'OutputCache o la Forms Authentication.
Dobbiamo quindi creare una classe che implementi l'interfaccia IHttpModule, come quella contenuta all'interno dell'allegato a questo script.

Ho scelto di creare un HttpModule che estendesse il comportamento standard della gestione degli errori di ASP.NET, che personalmente trovo sviluppata in maniera troppo semplicistica.
Non è escluso infatti che il debug (o quanto meno il testing) di un'applicazione venga fatta su un server remoto, su cui sia necessario visualizzare l'errore dettagliato che vedremmo in locale, ma senza che l'errore stesso sia visibile anche a persone senza i necessari privilegi.
Ho deciso così di implementare un ErrorModule personalizzato in grado di mostrare lo stesso identico errore di ASP.NET (ho preso spunto dallo script #479) solo ad un IP specificato nel web.config.

E' sufficiente registrare l'HttpModule (si può controllare come nel web.config allegato) ed aggiungere la chiave, in questo modo:

<appSettings>
  <add key="localIP" value="192.168.0.11" />
</appSettings>

In questo modo, l'errore sarà visualizzato solo se la connessione alla pagina è fatta dall'IP indicato.
Ci possono essere diverse varianti, come la possibilità di avere più IP o di utilizzare i roles, ma questo è un buon punto di partenza.

Approfondimenti


#479 - L'errore di ASP.NET in formato HTML
http://www.aspitalia.com/liste/usag/script.aspx?ID=479

#376 - Intercettare gli errori in pagine ASP.NET con il global.asax
http://www.aspitalia.com/liste/usag/script.aspx?ID=376

Commenti

Visualizza/aggiungi commenti

Visualizzare l'errore esteso di ASP.NET in base all'indirizzo IP di connessione (#528) 810 153
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi