2012-07-24 2 views
5

J'ai créé un HttpModule pour que chaque fois que je tape "localhost/blabla.html" dans le navigateur, il me redirige vers www.google.com (ceci est juste un exemple, c'est vraiment pour rediriger les requêtes provenant de téléphones mobiles)URL de redirection utilisant HttpModule Asp.net

Mes questions sont les suivantes:

1) Comment puis-je dire IIS (7.0) pour rediriger chaque demande à la « HttpModule » de sorte qu'il est indépendant du site. Je peux changer le web.config mais c'est tout.

2) Dois-je ajouter le fichier .dll au GAC? Si oui, comment puis-je faire cela?

3) Le code HttpModule utilise 'log4net'. dois-je ajouter "log4net" au GAC?

Merci

P.S. le site utilise .net 2.0.

Répondre

11

Vous pouvez utiliser l'objet de la demande en cas BeginRequest

public class MyHttpModule : IHttpModule 
{ 
    public void Init(HttpApplication context) 
    { 
      context.BeginRequest += new EventHandler(this.context_BeginRequest); 
    } 

    private void context_BeginRequest(object sender, EventArgs e) 
    { 
      HttpApplication application = (HttpApplication)sender; 
      HttpContext context = application.Context; 

      //check here context.Request for using request object 
      if(context.Request.FilePath.Contains("blahblah.html")) 
      { 
       context.Response.Redirect("http://www.google.com"); 
      } 
    } 

} 
+0

J'ai déjà le code pour le module redirect prêt, je dois l'installer dans IIS afin que les demandes passent par le HttpModule. –

+1

Vous devez ajouter à web.config –