2012-07-24 18 views
5

He creado un HttpModule para que cada vez que escriba "localhost/blabla.html" en el navegador, me redirija a www.google.com (esto es solo un ejemplo, es realmente para redirigir las solicitudes procedentes de los teléfonos móviles)Redirigir URL usando HttpModule Asp.net

Mis preguntas son:

1) ¿Cómo le digo IIS (7.0) para redirigir cada solicitud a la "HttpModule", por lo que es independiente de la página web. Puedo cambiar el web.config, pero eso es todo.

2) ¿Debo agregar el .dll al GAC? Si es así, ¿cómo puedo hacer eso?

3) El código HttpModule usa 'log4net'. ¿Necesito agregar 'log4net' al GAC también?

Gracias

P.S. el sitio está usando .net 2.0.

Respuesta

11

Puede utilizar objeto de solicitud en caso 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

Ya tengo el código para el módulo de redirección listo, tengo que instalarlo en IIS para que las peticiones pasan por el HttpModule. –

+1

Deberías agregar a web.config –

Cuestiones relacionadas