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
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub