Httpmodule

cs_Alexis35 Messages postés 44 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 2 mai 2011 - 22 avril 2008 à 16:11
cs_Alexis35 Messages postés 44 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 2 mai 2011 - 22 avril 2008 à 16:25
Bonjour je souhaiterai mettre en place de l'url rewriting "a la volée" grace a un httpmodule, malheureusement je ne comprends vraiment pas tout et encore moins comment fonctionne ce httpmodule.

Pour l'instant j'ai donc cela :

Mon test.vb contenu dans app_Code pour mon httpmodule :

Imports System.Web
Public Class HttpModuleRewriting
    Implements IHttpModule
    Dim odbConnect As New DBConnect
    Private _context As HttpContext

    Public Sub Dispose() Implements System.Web.IHttpModule.Dispose

    End Sub

    Public Sub Init(ByVal context As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init
        _context = context.Context
        AddHandler context.BeginRequest, AddressOf context_beginRequest
        AddHandler context.PreRequestHandlerExecute, AddressOf context_beginRequest
    End Sub

    Protected Sub context_beginRequest(ByVal sender As Object, ByVal args As EventArgs)
        'on cast le sender en HttpAplication
        'Dim Appl As System.Web.HttpApplication = DirectCast(sender, System.Web.HttpApplication)
        ''On initialise le moteur de réécriture
        'Dim e As New Engine(Appl)
        'Dim r As String = e.Process()
        'If r <> "" Then
        '    SendToNewUrl(r, Appl)
        'End If

        'Obtient l 'URL a rencoder
        Dim sSql, TypeTransacUrl As String
        Dim Url As String = _context.Request.RawUrl
        If Url.Contains("Default") Then
            odbConnect.openConnection("BDD")            sSql "SELECT transaction_id FROM transactions where descriptif 'Vente'"
            TypeTransacUrl = odbConnect.executeRead(sSql)
            _context.RewritePath("Default.aspx?transac=" & TypeTransacUrl)
            odbConnect.closeConnection()
        End If
        If Url.Contains("vente") Then
            odbConnect.openConnection("BDD")            sSql "SELECT transaction_id FROM transactions where descriptif 'Vente'"
            TypeTransacUrl = odbConnect.executeRead(sSql)
            _context.RewritePath("Default.aspx?transac=" & TypeTransacUrl)
            odbConnect.closeConnection()
        End If
    End Sub

(Ce sont des tests!!)

En gros je souhaite suivant l'url affiché aller chercher en base la bonne page...

Donc pour mes tests que l'url contienne Default ou vente il doit me redirigé vers default.aspx?transac=1
Dan smon web config j'ai mis :

<httpModules>
            [vente.aspx test]

la il me renvoie une erreur comme quoi cette page vente.aspx n'existe pas...Ce qui semble logique mais mon url rewriting devrait prendre la main???

Enfin bref j'ai du louper quelque chose...;

Si quelqu'un vuolait bien m'aiguiller...

D'avance merci beaucoup!
A voir également:

1 réponse

cs_Alexis35 Messages postés 44 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 2 mai 2011
22 avril 2008 à 16:25
et en fait on chargement il passe par le init de mon httpmodule, mais au clique sur le lien, il n'y passe pas...

J'avoue que je suis un peu perdu par tout ca!!
0