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>
<add type="HttpModuleRewriting" name="HttpModuleRewritinga" />
</httpModules>
Donc au premier chargement par defaut, donc default.aspx, c'est bien la page default.aspx?transac=1 qui est chargé avec l'url juste en défaut.aspx, par contre lorsque je clique sur lien que j'ai créé avec
<a href="vente.aspx">test</a>
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!