HttpApplication Clase

Definición

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 HttpApplication clase se usa para procesar muchas solicitudes durante su vigencia. Sin embargo, solo puede procesar una solicitud a la vez. Por lo tanto, las variables de miembro se pueden usar para almacenar datos por solicitud.

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:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    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.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    El controlador de eventos se ejecuta.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    Una vez generado el PostReleaseRequestState evento, los filtros de respuesta existentes filtrarán la salida.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Este evento se admite en el modo integrado de IIS 7.0 y al menos en .NET Framework 3.0

  18. PostLogRequest

    Este evento es compatible con el modo integrado de IIS 7.0 y al menos el .NET Framework 3.0

  19. EndRequest

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 End asincrónico cuando finaliza el proceso.

IHttpHandler.IsReusable

Obtiene un Boolean valor que indica si otra solicitud puede usar el IHttpHandler objeto .

IHttpHandler.ProcessRequest(HttpContext)

Habilita el procesamiento de solicitudes web HTTP mediante un controlador HTTP personalizado que implementa la IHttpHandler interfaz.

Se aplica a

Consulte también