Escolar Documentos
Profissional Documentos
Cultura Documentos
NET
El enrutamiento ASP.NET permite usar direcciones URL que no es necesario asignar a archivos
específicos de un sitio web. Dado que la dirección URL no tiene que asignarse a un archivo, en
una aplicación web puede usar direcciones URL descriptivas de la acción del usuario, y por
tanto, que los usuarios puedan identificar mejor.
En una aplicación ASP.NET que no utiliza enrutamiento, una solicitud entrante de una dirección
URL normalmente se asigna a un archivo físico en el disco como un archivo .aspx. Por ejemplo,
una solicitud de http://server/application/Products.aspx?id=4 se asigna a un archivo
denominado Products.aspx que contiene código y marcado para representar una respuesta al
explorador. La página web utiliza el valor de cadena de consulta de id=4 para determinar qué
tipo de contenido debe mostrarse, pero es probable que el valor tenga poco significado para el
usuario.
En el enrutamiento ASP.NET, se definen modelos de dirección URL que contienen marcadores
de posición para los valores utilizados al administrar solicitudes URL. En tiempo de ejecución, las
partes de la dirección URL que siguen al nombre de aplicación se analizan como valores
discretos, tomando como base un modelo de dirección URL que haya definido. Por ejemplo, en
la solicitud de http://server/application/Products/show/beverages, el analizador del
enrutamiento puede pasar los valores Products, show y beverages a un controlador para la
solicitud. Al contrario, en una solicitud que no administre el enrutamiento de direcciones
URL, /Products/show/beverages se interpretaría como la ruta de acceso de un archivo de la
aplicación.
También puede utilizar los modelos de dirección URL para crear mediante programación
direcciones URL que corresponden a las rutas. Esto permite centralizar la lógica para crear
hipervínculos en la aplicación ASP.NET.
{controlador}/{acción}/{id} /Products/show/beverages
{tabla}/Details.aspx /Products/Details.aspx
blog/{acción}/{entrada} /blog/show/123
{tipo_informe}/{año}/{mes}/{día} /sales/2008/1/5
{idioma}-{país}/{acción} /en-US/show
Normalmente, se agregan rutas de un método que se llama desde el controlador del
evento Application_Start en el archivo Global.asax. Este enfoque comprueba que las rutas
están disponibles cuando se inicia la aplicación. También permite llamar directamente al
método cuando se realiza una prueba unitaria de la aplicación. Si desea llamar directamente a
un método al realizar una prueba unitaria de la aplicación, el método que registra las rutas debe
ser estático (Shared en Visual Basic) y tener un parámetro RouteCollection.
Añada rutas agregándolas a la propiedad Routes estática de la clase RouteTable. La
propiedad Routes es un objeto RouteCollection que almacena todas las rutas de la aplicación
ASP.NET. En el ejemplo siguiente se muestra el código de un archivo Global.asax que agrega un
objeto Route que define dos parámetros URL denominados action y categoryName.
C#
VB
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
VB
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
Otras versiones
Actualización: noviembre 2007
Un controlador HTTP de ASP.NET es el proceso (con frecuencia llamado el "extremo") que se
ejecuta como respuesta a una solicitud realizada a una aplicación Web ASP.NET. El controlador
más común es el de la página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan
un archivo .aspx, la página procesa la solicitud a través del controlador de páginas. Puede crear
sus propios controladores HTTP que representen el resultado personalizado en el explorador.
Un módulo HTTP es un ensamblado al que se llama en cada solicitud realizada a la aplicación.
Los módulos HTTP se llaman como parte de la canalización de solicitudes de ASP.NET y tienen
acceso a los eventos de ciclo de vida a lo largo de la solicitud. Los módulos HTTP permiten
examinar las solicitudes de entrada y de salida y realizar acciones basadas en la solicitud.
Este tema contiene:
Escenarios
Características de controladores y módulos HTTP
Información general
Ejemplos de código
Referencia de clase
Escenarios
Entre los usos habituales de los controladores HTTP personalizados se incluyen los siguientes:
Fuentes RSS Para crear una fuente RSS para un sitio web, puede crear un controlador
que emita XML con formato RSS. A continuación, puede enlazar una extensión de
nombre de archivo como .rss al controlador personalizado. Cuando los usuarios envían
una solicitud al sitio que finaliza en .rss, ASP.NET llama al controlador para procesarla.
Servidor de imágenes Si desea que una aplicación web sirva imágenes en diferentes
tamaños, puede escribir un controlador personalizado para cambiar el tamaño de las
imágenes y después enviarlas al usuario como respuesta del controlador.
Entre los usos habituales de los módulos HTTP se incluyen los siguientes:
Seguridad Dado que se pueden examinar las solicitudes entrantes, un módulo HTTP
puede realizar una autenticación personalizada u otras comprobaciones de seguridad
antes de que se llame a la página, al servicio web XML o al controlador solicitado. En el
modo integrado de Internet Information Services (IIS) 7.0, puede extender la
autenticación de formularios a todos los tipos de contenido de una aplicación.
Estadística y registro Dado que en cada solicitud se llama a módulos HTTP, puede
recopilar estadísticas e información de registro sobre las solicitudes en un módulo
centralizado, en lugar de hacerlo en páginas individuales.
Encabezados o pies personalizados Dado que es posible modificar la respuesta de
salida, se puede insertar contenido, como información de encabezado personalizada, en
cada respuesta de página o servicio web XML.
Volver al principio
Características
Entre las características de controladores y módulos HTTP se incluyen las siguientes:
Las interfaces IHttpHandler y IHttpModule son el punto inicial para desarrollar
controladores y módulos.
La interfaz IHttpAsyncHandler es el punto inicial para desarrollar controladores
asincrónicos.
El código fuente de controladores y módulos personalizados se puede incluir en la
carpeta App_Code de una aplicación o bien se puede compilar e incluir en la carpeta Bin
de una aplicación.
Los controladores y módulos desarrollados para el uso en IIS 6.0 se pueden utilizar en
IIS 7.0 con pocos cambios o sin cambio alguno. Para obtener más información,
vea Mover una aplicación ASP.NET de IIS 6.0 a IIS 7.0.
Los módulos se pueden suscribir a diferentes notificaciones de canalización de
solicitudes. Los módulos pueden recibir notificación de eventos del
objeto HttpApplication.
En IIS 7.0, la canalización de solicitudes se integra con la canalización de solicitudes del
servidor web. Los módulos HTTP se pueden utilizar para cualquier solicitud al servidor
web, no sólo para solicitudes ASP.NET.
Volver al principio
Información general
Controladores HTTP
Un controlador HTTP de ASP.NET es el proceso que se ejecuta como respuesta a una solicitud
realizada a una aplicación web ASP.NET. El controlador más común es el de la página ASP.NET
que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, el controlador de
páginas procesa la solicitud.
El controlador de páginas de ASP.NET sólo es un tipo de controlador. ASP.NET incluye otros
controladores integrados, como el controlador de servicios web para archivos .asmx.
Controladores HTTP integrados en ASP.NET
ASP.NET asigna solicitudes HTTP a controladores HTTP en función de la extensión del nombre
de un archivo. Cada controlador HTTP puede procesar direcciones URL HTTP individuales o
grupos de extensiones URL de una aplicación. ASP.NET incluye varios controladores HTTP
integrados, como se muestra en la tabla siguiente.
Controlador Descripción
Nota:
Los módulos HTTP difieren de los controladores HTTP. Un controlador HTTP
devuelve una respuesta a una solicitud que se identifica mediante una extensión de
nombre de archivo o una familia de extensiones de nombre de archivo. Los módulos
HTTP, sin embargo, se invocan para todas las solicitudes y respuestas. Se suscriben
a las notificaciones de eventos de la canalización de solicitudes y permiten ejecutar
código en controladores de eventos registrados. Las tareas para las que se utiliza un
módulo son generales para una aplicación y para todas las solicitudes de los recursos
incluidos en la aplicación.
Nota: