HttpApplication Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define los métodos, propiedades y eventos comunes a todos los objetos de aplicación de una aplicación ASP.NET. Esta clase es la clase base para las aplicaciones definidas por el usuario en el archivo Global.asax.
public ref class HttpApplication : IDisposable, System::ComponentModel::IComponent, System::Web::IHttpAsyncHandler
public class HttpApplication : IDisposable, System.ComponentModel.IComponent, System.Web.IHttpAsyncHandler
type HttpApplication = class
interface IHttpAsyncHandler
interface IHttpHandler
interface IComponent
interface IDisposable
type HttpApplication = class
interface IComponent
interface IDisposable
interface IHttpAsyncHandler
interface IHttpHandler
Public Class HttpApplication
Implements IComponent, IDisposable, IHttpAsyncHandler
- Herencia
-
HttpApplication
- Implementaciones
Ejemplos
En los dos ejemplos siguientes se muestra cómo usar la HttpApplication clase y sus eventos. En el primer ejemplo se muestra cómo crear un módulo HTTP personalizado y conectar un evento a él. En el segundo ejemplo se muestra cómo modificar el archivo Web.config.
En el ejemplo siguiente se muestra cómo crear un módulo HTTP personalizado y conectar el AcquireRequestState evento al módulo HTTP. Los módulos HTTP interceptan cada solicitud a los recursos de la aplicación web, lo que le permite filtrar las solicitudes de cliente. Cualquier módulo HTTP que se suscriba a un HttpApplication evento debe implementar la IHttpModule interfaz .
using System;
using System.Web;
namespace Samples.AspNet.CS
{
public class CustomHTTPModule : IHttpModule
{
public CustomHTTPModule()
{
// Class constructor.
}
// Classes that inherit IHttpModule
// must implement the Init and Dispose methods.
public void Init(HttpApplication app)
{
app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
app.PostAcquireRequestState += new EventHandler(app_PostAcquireRequestState);
}
public void Dispose()
{
// Add code to clean up the
// instance variables of a module.
}
// Define a custom AcquireRequestState event handler.
public void app_AcquireRequestState(object o, EventArgs ea)
{
HttpApplication httpApp = (HttpApplication)o;
HttpContext ctx = HttpContext.Current;
ctx.Response.Write(" Executing AcquireRequestState ");
}
// Define a custom PostAcquireRequestState event handler.
public void app_PostAcquireRequestState(object o, EventArgs ea)
{
HttpApplication httpApp = (HttpApplication)o;
HttpContext ctx = HttpContext.Current;
ctx.Response.Write(" Executing PostAcquireRequestState ");
}
}
}
Imports System.Web
Namespace Samples.AspNet.VB
Public Class CustomHTTPModule
Implements IHttpModule
Public Sub New()
' Class constructor.
End Sub
' Classes that inherit IHttpModule
' must implement the Init and Dispose methods.
Public Sub Init(ByVal app As HttpApplication) Implements IHttpModule.Init
AddHandler app.AcquireRequestState, AddressOf app_AcquireRequestState
AddHandler app.PostAcquireRequestState, AddressOf app_PostAcquireRequestState
End Sub
Public Sub Dispose() Implements IHttpModule.Dispose
' Add code to clean up the
' instance variables of a module.
End Sub
' Define a custom AcquireRequestState event handler.
Public Sub app_AcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)
Dim httpApp As HttpApplication = CType(o, HttpApplication)
Dim ctx As HttpContext = HttpContext.Current
ctx.Response.Write(" Executing AcquireRequestState ")
End Sub
' Define a custom PostAcquireRequestState event handler.
Public Sub app_PostAcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)
Dim httpApp As HttpApplication = CType(o, HttpApplication)
Dim ctx As HttpContext = HttpContext.Current
ctx.Response.Write(" Executing PostAcquireRequestState ")
End Sub
End Class
End Namespace
Antes de que se produzca un evento en un módulo HTTP personalizado, debe modificar los valores de configuración en el archivo Web.config para notificar a ASP.NET sobre el módulo HTTP. En el ejemplo siguiente se muestra la configuración adecuada en la httpModules sección del archivo Web.config. La siguiente configuración se aplica al modo clásico de IIS 7.0 y a versiones anteriores de IIS.
<configuration>
<system.web>
<httpModules>
<add type="Samples.AspNet.CS.CustomHTTPModule"
name="CustomHttpModule" />
</httpModules>
</system.web>
</configuration>
<configuration>
<system.web>
<httpModules>
<add type="Samples.AspNet.VB.CustomHTTPModule"
name="CustomHttpModule" />
</httpModules>
</system.web>
</configuration>
La siguiente configuración se aplica al modo integrado de IIS 7.0.
<configuration>
<system.webServer>
<modules>
<add type="Samples.AspNet.CS.CustomHTTPModule"
name="CustomHttpModule" />
</modules>
</system.webServer>
</configuration>
<configuration>
<system.webServer>
<modules>
<add type="Samples.AspNet.VB.CustomHTTPModule"
name="CustomHttpModule" />
<modules>
</system.webServer>
</configuration>
Comentarios
Las instancias de la clase /> de
Una aplicación genera eventos que se pueden controlar mediante módulos personalizados que implementan la IHttpModule interfaz o el código del controlador de eventos que se define en el archivo Global.asax. Los módulos personalizados que implementan la IHttpModule interfaz se pueden colocar en la carpeta App_Code o en un archivo DLL en la carpeta Bin.
HttpApplication se introduce en la versión 3.5 de .NET Framework. Para obtener más información, vea Versiones y dependencias.
Note
Al ejecutar IIS 7.0 en modo integrado, los módulos personalizados de la carpeta App_Code o la carpeta Bin se aplican a todas las solicitudes de la canalización de solicitudes. El código del controlador de eventos del archivo Global.asax solo se aplica a las solicitudes asignadas a un controlador de ASP.NET.
Los eventos de aplicación se generan en el orden siguiente:
-
Después del PostResolveRequestCache evento y antes del PostMapRequestHandler evento, se crea un controlador de eventos (que es una página que corresponde a la dirección URL de solicitud). Cuando un servidor ejecuta IIS 7.0 en modo integrado y al menos la versión 3.0 de .NET Framework, se genera el evento MapRequestHandler. Cuando un servidor ejecuta IIS 7.0 en modo clásico o una versión anterior de IIS, este evento no se puede controlar.
-
El controlador de eventos se ejecuta.
-
Una vez generado el PostReleaseRequestState evento, los filtros de respuesta existentes filtrarán la salida.
-
Este evento se admite en el modo integrado de IIS 7.0 y al menos en .NET Framework 3.0
-
Este evento es compatible con el modo integrado de IIS 7.0 y al menos el .NET Framework 3.0
Constructores
| Nombre | Description |
|---|---|
| HttpApplication() |
Inicializa una nueva instancia de la clase HttpApplication. |
Propiedades
| Nombre | Description |
|---|---|
| Application |
Obtiene el estado actual de una aplicación. |
| Context |
Obtiene información específica de HTTP sobre la solicitud actual. |
| Events |
Obtiene la lista de delegados del controlador de eventos que procesan todos los eventos de la aplicación. |
| Modules |
Obtiene la colección de módulos de la aplicación actual. |
| Request |
Obtiene el objeto de solicitud intrínseco para la solicitud actual. |
| Response |
Obtiene el objeto de respuesta intrínseco para la solicitud actual. |
| Server |
Obtiene el objeto de servidor intrínseco para la solicitud actual. |
| Session |
Obtiene el objeto de sesión intrínseco que proporciona acceso a los datos de sesión. |
| Site |
Obtiene o establece una interfaz de sitio para una IComponent implementación. |
| User |
Obtiene el objeto de usuario intrínseco para la solicitud actual. |
Métodos
| Nombre | Description |
|---|---|
| AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado AcquireRequestState a la colección de controladores de eventos asincrónicos AcquireRequestState para la solicitud actual. |
| AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado AcquireRequestState a la colección de controladores de eventos asincrónicos AcquireRequestState para la solicitud actual. |
| AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado AuthenticateRequest a la colección de controladores de eventos asincrónicos AuthenticateRequest para la solicitud actual. |
| AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado AuthenticateRequest a la colección de controladores de eventos asincrónicos AuthenticateRequest para la solicitud actual. |
| AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado AuthorizeRequest a la colección de controladores de eventos asincrónicos AuthorizeRequest para la solicitud actual. |
| AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado AuthorizeRequest a la colección de controladores de eventos asincrónicos AuthorizeRequest para la solicitud actual. |
| AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado BeginRequest a la colección de controladores de eventos asincrónicos BeginRequest para la solicitud actual. |
| AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado BeginRequest a la colección de controladores de eventos asincrónicos BeginRequest para la solicitud actual. |
| AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado EndRequest a la colección de controladores de eventos asincrónicos EndRequest para la solicitud actual. |
| AddOnEndRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado EndRequest a la colección de controladores de eventos asincrónicos EndRequest para la solicitud actual. |
| AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado LogRequest a la colección de controladores de eventos asincrónicos LogRequest para la solicitud actual. |
| AddOnLogRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado LogRequest a la colección de controladores de eventos asincrónicos LogRequest para la solicitud actual. |
| AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado MapRequestHandler a la colección de controladores de eventos asincrónicos MapRequestHandler para la solicitud actual. |
| AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado MapRequestHandler a la colección de controladores de eventos asincrónicos MapRequestHandler para la solicitud actual. |
| AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostAcquireRequestState a la colección de controladores de eventos asincrónicos PostAcquireRequestState para la solicitud actual. |
| AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostAcquireRequestState a la colección de controladores de eventos asincrónicos PostAcquireRequestState para la solicitud actual. |
| AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostAuthorizeRequest a la colección de controladores de eventos asincrónicos PostAuthorizeRequest para la solicitud actual. |
| AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostAuthenticateRequest a la colección de controladores de eventos asincrónicos PostAuthenticateRequest para la solicitud actual. |
| AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el objeto especificado PostAuthorizeRequest a la colección de controladores de eventos asincrónicos PostAuthorizeRequest para la solicitud actual. |
| AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostAuthorizeRequest a la colección de controladores de eventos asincrónicos PostAuthorizeRequest para la solicitud actual. |
| AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostLogRequest a la colección de controladores de eventos asincrónicos PostLogRequest para la solicitud actual. |
| AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostLogRequest a la colección de controladores de eventos asincrónicos PostLogRequest para la solicitud actual. |
| AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostMapRequestHandler a la colección de controladores de eventos asincrónicos PostMapRequestHandler para la solicitud actual. |
| AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostMapRequestHandler a la colección de controladores de eventos asincrónicos PostMapRequestHandler para la solicitud actual. |
| AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostReleaseRequestState a la colección de controladores de eventos asincrónicos PostReleaseRequestState para la solicitud actual. |
| AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostReleaseRequestState a la colección de controladores de eventos asincrónicos PostReleaseRequestState para la solicitud actual. |
| AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostRequestHandlerExecute a la colección de controladores de eventos asincrónicos PostRequestHandlerExecute para la solicitud actual. |
| AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostRequestHandlerExecute a la colección de controladores de eventos asincrónicos PostRequestHandlerExecute para la solicitud actual. |
| AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostResolveRequestCache a la colección de controladores de eventos asincrónicos PostResolveRequestCache para la solicitud actual. |
| AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostResolveRequestCache a la colección de controladores de eventos asincrónicos PostResolveRequestCache para la solicitud actual. |
| AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PostUpdateRequestCache a la colección de controladores de eventos asincrónicos PostUpdateRequestCache para la solicitud actual. |
| AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PostUpdateRequestCache a la colección de controladores de eventos asincrónicos PostUpdateRequestCache para la solicitud actual. |
| AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado PreRequestHandlerExecute a la colección de controladores de eventos asincrónicos PreRequestHandlerExecute para la solicitud actual. |
| AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado PreRequestHandlerExecute a la colección de controladores de eventos asincrónicos PreRequestHandlerExecute para la solicitud actual. |
| AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado ReleaseRequestState a la colección de controladores de eventos asincrónicos ReleaseRequestState para la solicitud actual. |
| AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado ReleaseRequestState a la colección de controladores de eventos asincrónicos ReleaseRequestState para la solicitud actual. |
| AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el controlador de eventos especificado ResolveRequestCache a la colección de controladores de eventos asincrónicos ResolveRequestCache para la solicitud actual. |
| AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Agrega el controlador de eventos especificado ResolveRequestCache a la colección de controladores de eventos asincrónicos ResolveRequestCache para la solicitud actual. |
| AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Agrega el evento especificado UpdateRequestCache a la colección de controladores de eventos asincrónicos UpdateRequestCache para la solicitud actual. |
| AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Agrega el evento especificado UpdateRequestCache a la colección de controladores de eventos asincrónicos UpdateRequestCache para la solicitud actual. |
| CompleteRequest() |
Hace que ASP.NET omitir todos los eventos y el filtrado en la cadena de ejecución de la canalización HTTP y ejecutar directamente el evento EndRequest. |
| Dispose() |
Elimina la HttpApplication instancia. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetOutputCacheProviderName(HttpContext) |
Obtiene el nombre del proveedor de caché de salida predeterminado configurado para un sitio web. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| GetVaryByCustomString(HttpContext, String) |
Proporciona una implementación en toda la aplicación de la VaryByCustom propiedad . |
| Init() |
Ejecuta código de inicialización personalizado después de agregar todos los módulos del controlador de eventos. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnExecuteRequestStep(Action<HttpContextBase,Action>) |
Especifica una devolución de llamada que se invocará cuando se ejecuta un paso de ejecución de solicitud. |
| RegisterModule(Type) |
Registra un módulo de aplicación. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Eventos
| Nombre | Description |
|---|---|
| AcquireRequestState |
Se produce cuando ASP.NET adquiere el estado actual (por ejemplo, estado de sesión) asociado a la solicitud actual. |
| AuthenticateRequest |
Se produce cuando un módulo de seguridad ha establecido la identidad del usuario. |
| AuthorizeRequest |
Se produce cuando un módulo de seguridad ha comprobado la autorización del usuario. |
| BeginRequest |
Se produce como el primer evento de la cadena de ejecución de canalización HTTP cuando ASP.NET responde a una solicitud. |
| Disposed |
Se produce cuando se elimina la aplicación. |
| EndRequest |
Se produce como el último evento de la cadena de ejecución de la canalización HTTP cuando ASP.NET responde a una solicitud. |
| Error |
Se produce cuando se produce una excepción no controlada. |
| LogRequest |
Se produce justo antes de que ASP.NET realice cualquier registro para la solicitud actual. |
| MapRequestHandler |
Se produce cuando se selecciona el controlador para responder a la solicitud. |
| PostAcquireRequestState |
Se produce cuando se obtiene el estado de solicitud (por ejemplo, estado de sesión) asociado a la solicitud actual. |
| PostAuthenticateRequest |
Se produce cuando un módulo de seguridad ha establecido la identidad del usuario. |
| PostAuthorizeRequest |
Se produce cuando el usuario de la solicitud actual se ha autorizado. |
| PostLogRequest |
Se produce cuando ASP.NET ha completado el procesamiento de todos los controladores de eventos para el evento /> |
| PostMapRequestHandler |
Se produce cuando ASP.NET ha asignado la solicitud actual al controlador de eventos adecuado. |
| PostReleaseRequestState |
Se produce cuando ASP.NET se ha completado la ejecución de todos los controladores de eventos de solicitud y se han almacenado los datos de estado de la solicitud. |
| PostRequestHandlerExecute |
Se produce cuando el controlador de eventos ASP.NET (por ejemplo, una página o un servicio web XML) finaliza la ejecución. |
| PostResolveRequestCache |
Se produce cuando ASP.NET omite la ejecución del controlador de eventos actual y permite que un módulo de almacenamiento en caché sirva una solicitud de la memoria caché. |
| PostUpdateRequestCache |
Se produce cuando ASP.NET finaliza la actualización de módulos de almacenamiento en caché y el almacenamiento de respuestas que se usan para atender solicitudes posteriores de la memoria caché. |
| PreRequestHandlerExecute |
Se produce justo antes de que ASP.NET empiece a ejecutar un controlador de eventos (por ejemplo, una página o un servicio web XML). |
| PreSendRequestContent |
Se produce justo antes de que ASP.NET envíe contenido al cliente. |
| PreSendRequestHeaders |
Se produce justo antes de ASP.NET envía encabezados HTTP al cliente. |
| ReleaseRequestState |
Se produce después de que ASP.NET termine de ejecutar todos los controladores de eventos de solicitud. Este evento hace que los módulos de estado guarden los datos de estado actuales. |
| RequestCompleted |
Se produce cuando se han liberado los objetos administrados asociados a la solicitud. |
| ResolveRequestCache |
Se produce cuando ASP.NET finaliza un evento de autorización para permitir que los módulos de almacenamiento en caché atienden solicitudes de la memoria caché, pasando la ejecución del controlador de eventos (por ejemplo, una página o un servicio web XML). |
| UpdateRequestCache |
Se produce cuando ASP.NET termina de ejecutar un controlador de eventos para permitir que los módulos de almacenamiento en caché almacenen respuestas que se usarán para atender las solicitudes posteriores de la memoria caché. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object) |
Inicia una llamada asincrónica al controlador de eventos HTTP. |
| IHttpAsyncHandler.EndProcessRequest(IAsyncResult) |
Proporciona un método de proceso |
| IHttpHandler.IsReusable |
Obtiene un |
| IHttpHandler.ProcessRequest(HttpContext) |
Habilita el procesamiento de solicitudes web HTTP mediante un controlador HTTP personalizado que implementa la IHttpHandler interfaz. |