Gli HttpHandler sono una delle novità più interessanti dell'architettura di ASP.NET, perchè rendono possibile la realizzazione di funzionalità che con Classic ASP necessitavano di filtri ISAPI.
Lo script di oggi è un handler che permette di rendere statici URL che in realtà passano il proprio ID ad una pagina che preleva le informazioni da un database.
L'uso di questo sistema renderà possibile avere URL come
http://sito/articoli/articolo15.ashx
anzichè
http://sito/articoli.aspx?ID=15
che è più gradito ai motori di ricerca e più semplice da gestire.
Imports System Imports System.Web Namespace ASPItalia Public Class RedirHandler Implements IHttpHandler Dim private pagina as String Public Sub ProcessRequest(ByVal Context As HttpContext) Implements System.Web.IHttpHandler.ProcessRequest ' ricava path corrente Dim requestPath As String = Context.Request.Path.ToLower() ' se non è un articolo, ignoriamolo if requestPath.IndexOf("articoli") < 0 then Exit Sub If requestPath.EndsWith(".ashx") AndAlso requestPath.IndexOf("articolo") > 0 then Dim pagina as String = requestPath pagina = pagina.Substring(pagina.IndexOf("articolo")+8).Replace(".ashx", String.Empty) Context.Server.Execute("../content.aspx?ID=" & pagina) End If End Sub Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable Get Return True End Get End Property End Class End Namespace
Oltre a compilare la classe (disponibile nell'allegato con il make.bat) è necessario creare un web.config che associ l'estensione .ashx al nostro HttpHandler. Niente paura perchè si tratta di un'estensione che ASP.NET non usa direttamente, ma mette a disposizione degli sviluppatori proprio per funzionalità come queste.
Nessuno vi vieta di aggiungere estensioni particolari, come .content, purchè vi ricordiate di mapparle al filtro ISAPI di ASP.NET all'interno di IIS.
Commenti
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
- Utilizzare DPAPI: cifrare dati sensibili
- Recuperare la foto dell'utente nelle Windows Store app
- What's new in Azure Functions and Extensions
- dal tuo PC o smartphone tra poco #aspilive: https://aspit.co/VS2015-live tutto su #vs2015, #windows10, #aspnet5 e altro ancora!
- Creare link alle risorse di DocumentDB con UriFactory
- Ottenere il nome esteso del mese
- Eventi personalizzati per l'HealhMonitoring di ASP.NET 2.0
- Utilizare la libreria subsink per eliminare le sottoscrizioni agli observable in Angular
- Ritardata l'uscita di BizTalk Server 2004
- Creare file di Excel al volo