Reescritura de URL con IIS y ASP.NET

Entendiendo la reescritura de direcciones de URL como la lectura de una URL distinta en el navegador a lo que realmente se utiliza como parámetros en el motor de ASP.NET, que para que realmente funciones debe debe procesarse la petición inicial o reescribirse internamente.

Este proceso en un servidor de páginas Web Apache consiste en la creación de reglas de reescritura a través de un htaccess. Sin embargo, en el IIS (Internet Informatio Service, de Microsoft) no existe dicha opción, salvo que se instale algún filtro ISAPI de un tercero que añada dicha funcionalidad a este servidor de páginas Web. Un filtro ISAPI consiste en una una librería dinámica DLL que se instala en el servidor IIS para gestionar las peticiones (o requests) entrantes y salientes del servidor, a nivel de Sitio Web o a nivel global de todos los Sitios Web que contenga el servidor. Se activan mediante filtros de peticiones que buscan continuamente las coinicidencias con su cadena de llamada.

Antiguamente con ASP era imposible reescribir una URL sin utilizar un filtro ISAPI. Lo que suponía comprar productos de terceros o programar de 0 todo por tu cuenta en C o C++.

Para comprender cómo funciona la reescritura de direcciones de URL en ASP.NET se debe conocer cómo actúan las peticiones (o request) en el IIS: En primer lugar, se invocan los filtros ISAPI. Luego, el resultado de los filtros ISAPI pasan a los módulos HTTP y por último pasa por el controlador HTTP, que devuelve el formato del archivo que se solicita.

De este modo, se deja abierto el camino a 2 posibilidades para poder gestionar la reescritura de direcciones URL en ASP.NET:

  • Filtros ISAPI (como en el ASP antiguo).
  • Programación de manejadores o controladores HTTP.

Los módulos o controladores HTTP consisten también en DLL que deben ubicarse en la carpeta BIN del sitio Web configurado con el IIS. Dichos módulos se invocan a través de los parámetros httpHandler o httpModules en el Web.config.

Para crear un módulo HTTP, lee el siguiente artículo de Microsoft en castellano: http://www.15seconds.com/issue/030522.htm

Dejar un comentario

*