Torna al Thread
Imports Microsoft.VisualBasic
Public Class HandlerPage
Implements IHttpHandlerFactory
'Implements IHttpHandlerFactory, IRequiresSessionState
Public Function GetHandler(ByVal context As HttpContext, ByVal requestType As String, ByVal URL As String, ByVal pathTranslated As String) As IHttpHandler _
Implements IHttpHandlerFactory.GetHandler
Dim percorso As String = URL
Dim tp As Long = -1
Dim id As Long = 0
Dim pag As Long = -1
Dim paginaNonStandard As String = ""
Dim r As Regex
Dim m As Match
r = New Regex("(?<Nome>.*?)_tp(?<tp>[0-9]{1})_pg(?<pag>[0-9]{1,}).aspx|(?<Nome>.*?)_tp(?<tp>[0-9]{1})_pg(?<pag>[0-9]{1,})_id(?<id>[0-9]{1,}).aspx|(?<Nome>.*?)_tp(?<tp>[0-9]{1})_pg(?<pag>[0-9]{1,})_sh(?<id>[0-9]{1,}).aspx", RegexOptions.IgnoreCase Or RegexOptions.Compiled)
m = r.Match(percorso)
If m.Success Then
tp = m.Groups("tp").Value
pag = m.Groups("pag").Value
paginaNonStandard = m.Groups("Nome").Value & ".aspx"
If Not m.Groups("id").Value = "" Then
id = m.Groups("id").Value
End If
End If
If Not tp = -1 Then
Select Case tp
Case 1
context.Items("fileName") = System.IO.Path.GetFileNameWithoutExtension(URL).ToLower()
'context.RewritePath(URL, Nothing, "Page=" & pag & "&id=" & id)
Return PageParser.GetCompiledPageInstance("~/Content.aspx", context.Server.MapPath("~/Content.aspx"), context)
End Select
Else
context.Items("fileName") = System.IO.Path.GetFileNameWithoutExtension(URL).ToLower()
If IO.File.Exists(context.Server.MapPath(percorso)) Then
Return PageParser.GetCompiledPageInstance(percorso, context.Server.MapPath(percorso), context)
Else
Return PageParser.GetCompiledPageInstance("~/NoFound.aspx", context.Server.MapPath("~/NoFound.aspx"), context)
End If
'End If
'Return PageParser.GetCompiledPageInstance("~/default.aspx", context.Server.MapPath("~/default.aspx"), context)
End If
End Function 'GetHandler
Public Sub ReleaseHandler(ByVal handler As IHttpHandler) _
Implements IHttpHandlerFactory.ReleaseHandler
End Sub 'ReleaseHandler
End Class