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 NamespaceOltre 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.
Nota: Questo script contiene un allegato.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.









Stampa
Snippet
Download




Trovo l'articolo decisamente interessante, però, ho dei problemi con il file web.config, vorrei fossero specificati meglio i passaggi da effetuare su ...
Continua »»» | Rispondi »»»