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

di Daniele Bochicchio, 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
https://www.aspitalia.com/liste/usag/script.aspx?ID=479

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

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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