Compartir vía


HttpApplication Clase

Definición

Define los métodos, las propiedades y los eventos comunes a todos los objetos de aplicación existentes en una aplicación ASP.NET. Esta clase es la clase base para las aplicaciones que están 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 del archivo Web.config para notificar a ASP.NET sobre el módulo HTTP. En el ejemplo siguiente se muestra el valor de configuración adecuado 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 HttpApplication clase se crean en la infraestructura de ASP.NET, no directamente por el usuario. Una instancia de la HttpApplication clase se usa para procesar muchas solicitudes en su duración. Sin embargo, solo puede procesar una solicitud a la vez. Por lo tanto, las variables 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 .NET Framework versión 3.5. Para más información, vea Versiones y dependencias.

Nota

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 la 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 MapRequestHandler evento . 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

    Se ejecuta el controlador de eventos.

  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 .NET Framework 3.0

  18. PostLogRequest

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

  19. EndRequest

Constructores

HttpApplication()

Inicializa una nueva instancia de la clase HttpApplication.

Propiedades

Application

Obtiene el estado actual de una aplicación.

Context

Obtiene información específica de HTTP acerca de la solicitud actual.

Events

Obtiene la lista de delegados de controladores de eventos que procesan todos los eventos de aplicación.

Modules

Obtiene la colección de módulos de la aplicación actual.

Request

Obtiene el objeto de solicitud intrínseco de la solicitud actual.

Response

Obtiene el objeto de respuesta intrínseco de la solicitud actual.

Server

Obtiene el objeto de servidor intrínseco de la solicitud actual.

Session

Obtiene el objeto de sesión intrínseco que proporciona acceso a los datos de la sesión.

Site

Obtiene o establece una interfaz de sitio para una implementación de IComponent.

User

Obtiene el objeto de usuario intrínseco de la respuesta actual.

Métodos

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Agrega el evento AcquireRequestState especificado a la colección de controladores de eventos AcquireRequestState asincrónicos de la solicitud actual.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento AcquireRequestState especificado a la colección de controladores de eventos AcquireRequestState asincrónicos de la solicitud actual.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento AuthenticateRequest especificado a la colección de controladores de eventos AuthenticateRequest asincrónicos de la solicitud actual.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento AuthenticateRequest especificado a la colección de controladores de eventos AuthenticateRequest asincrónicos de la solicitud actual.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento AuthorizeRequest especificado a la colección de controladores de eventos AuthorizeRequest asincrónicos de la solicitud actual.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento AuthorizeRequest especificado a la colección de controladores de eventos AuthorizeRequest asincrónicos de la solicitud actual.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento BeginRequest especificado a la colección de controladores de eventos BeginRequest asincrónicos de la solicitud actual.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento BeginRequest especificado a la colección de controladores de eventos BeginRequest asincrónicos de la solicitud actual.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento EndRequest especificado a la colección de controladores de eventos EndRequest asincrónicos de la solicitud actual.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento EndRequest especificado a la colección de controladores de eventos EndRequest asincrónicos de la solicitud actual.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento LogRequest especificado a la colección de controladores de eventos LogRequest asincrónicos de la solicitud actual.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento LogRequest especificado a la colección de controladores de eventos LogRequest asincrónicos de la solicitud actual.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Agrega el evento MapRequestHandler especificado a la colección de controladores de eventos MapRequestHandler asincrónicos de la solicitud actual.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento MapRequestHandler especificado a la colección de controladores de eventos MapRequestHandler asincrónicos de la solicitud actual.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostAcquireRequestState especificado a la colección de controladores de eventos PostAcquireRequestState asincrónicos de la solicitud actual.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostAcquireRequestState especificado a la colección de controladores de eventos PostAcquireRequestState asincrónicos de la solicitud actual.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostAuthenticateRequest especificado a la colección de controladores de eventos PostAuthenticateRequest asincrónicos de la solicitud actual.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostAuthorizeRequest especificado a la colección de controladores de eventos PostAuthorizeRequest asincrónicos de la solicitud actual.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostAuthorizeRequest especificado a la colección de controladores de eventos PostAuthorizeRequest asincrónicos de la solicitud actual.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el PostAuthorizeRequest especificado a la colección de controladores de eventos PostAuthorizeRequest asincrónicos de la solicitud actual.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostLogRequest especificado a la colección de controladores de eventos PostLogRequest asincrónicos de la solicitud actual.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostLogRequest especificado a la colección de controladores de eventos PostLogRequest asincrónicos de la solicitud actual.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostMapRequestHandler especificado a la colección de controladores de eventos PostMapRequestHandler asincrónicos de la solicitud actual.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostMapRequestHandler especificado a la colección de controladores de eventos PostMapRequestHandler asincrónicos de la solicitud actual.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostReleaseRequestState especificado a la colección de controladores de eventos PostReleaseRequestState asincrónicos de la solicitud actual.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostReleaseRequestState especificado a la colección de controladores de eventos PostReleaseRequestState asincrónicos de la solicitud actual.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostRequestHandlerExecute especificado a la colección de controladores de eventos PostRequestHandlerExecute asincrónicos de la solicitud actual.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostRequestHandlerExecute especificado a la colección de controladores de eventos PostRequestHandlerExecute asincrónicos de la solicitud actual.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostResolveRequestCache especificado a la colección de controladores de eventos PostResolveRequestCache asincrónicos de la solicitud actual.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostResolveRequestCache especificado a la colección de controladores de eventos PostResolveRequestCache asincrónicos de la solicitud actual.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PostUpdateRequestCache especificado a la colección de controladores de eventos PostUpdateRequestCache asincrónicos de la solicitud actual.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PostUpdateRequestCache especificado a la colección de controladores de eventos PostUpdateRequestCache asincrónicos de la solicitud actual.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Agrega el evento PreRequestHandlerExecute especificado a la colección de controladores de eventos PreRequestHandlerExecute asincrónicos de la solicitud actual.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento PreRequestHandlerExecute especificado a la colección de controladores de eventos PreRequestHandlerExecute asincrónicos de la solicitud actual.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Agrega el evento ReleaseRequestState especificado a la colección de controladores de eventos ReleaseRequestState asincrónicos de la solicitud actual.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento ReleaseRequestState especificado a la colección de controladores de eventos ReleaseRequestState asincrónicos de la solicitud actual.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Agrega el controlador de eventos ResolveRequestCache especificado a la colección de controladores de eventos ResolveRequestCache asincrónicos de la solicitud actual.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el controlador de eventos ResolveRequestCache especificado a la colección de controladores de eventos ResolveRequestCache asincrónicos de la solicitud actual.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Agrega el evento UpdateRequestCache especificado a la colección de controladores de eventos UpdateRequestCache asincrónicos de la solicitud actual.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Agrega el evento UpdateRequestCache especificado a la colección de controladores de eventos UpdateRequestCache asincrónicos de la solicitud actual.

CompleteRequest()

Permite que ASP.NET omita todos los eventos y el filtrado de la cadena de ejecución de canalización HTTP y ejecute directamente el evento EndRequest.

Dispose()

Se deshace de la instancia HttpApplication.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetOutputCacheProviderName(HttpContext)

Obtiene el nombre del proveedor de caché de resultados predeterminado que se ha configurado para un sitio web.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetVaryByCustomString(HttpContext, String)

Proporciona una implementación de la propiedad VaryByCustom para toda la aplicación.

Init()

Ejecuta el código de inicialización personalizado una vez agregados todos los módulos controladores de eventos.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnExecuteRequestStep(Action<HttpContextBase,Action>)

Especifica una devolución de llamada que se invocará cuando se complete 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

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 desecha la aplicación.

EndRequest

Se produce como el último evento de la cadena de ejecución de 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 ha obtenido el estado de solicitud (por ejemplo, el estado de sesión) asociado con la solicitud actual.

PostAuthenticateRequest

Se produce cuando un módulo de seguridad ha establecido la identidad del usuario.

PostAuthorizeRequest

Se produce cuando se ha autorizado al usuario de la solicitud actual.

PostLogRequest

Se produce cuando ASP.NET ha completado el procesamiento de todos los controladores de eventos para el evento LogRequest.

PostMapRequestHandler

Se produce cuando ASP.NET ha asignado la solicitud actual al controlador de eventos adecuado.

PostReleaseRequestState

Se produce cuando ASP.NET ha finalizado de ejecutar todos los controladores de eventos de la 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 su 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é atienda una solicitud desde la caché.

PostUpdateRequestCache

Se produce cuando ASP.NET completa la actualización de los módulos de almacenamiento en caché que almacenan las respuestas que se usan para atender las posteriores solicitudes de la caché.

PreRequestHandlerExecute

Se produce justo antes de que ASP.NET comience a ejecutar un controlador de eventos (por ejemplo, una página o un servicio Web XML).

PreSendRequestContent

Se produce inmediatamente antes de que ASP.NET envíe el contenido al cliente.

PreSendRequestHeaders

Se produce inmediatamente antes de que ASP.NET envíe los encabezados HTTP al cliente.

ReleaseRequestState

Se produce después de que ASP.NET termine de ejecutar todos los controladores de eventos de la solicitud. Este evento permite que los módulos de estado guarden los datos de estado actuales.

RequestCompleted

Se produce al liberarse 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é atiendan las solicitudes de la caché, evitando la ejecución del controlador de eventos (por ejemplo, una página o servicio Web XML).

UpdateRequestCache

Se produce cuando ASP.NET finaliza la ejecución de un controlador de eventos para permitir que los módulos de almacenamiento en caché almacenen las respuestas que se van a utilizar para atender las solicitudes siguientes de la caché.

Implementaciones de interfaz explícitas

IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Inicia una llamada asincrónica al controlador de eventos HTTP.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Proporciona un método End de proceso asincrónico cuando finaliza el proceso.

IHttpHandler.IsReusable

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

IHttpHandler.ProcessRequest(HttpContext)

Permite el procesamiento de solicitudes Web HTTP mediante un controlador HTTP personalizado que implementa la interfaz IHttpHandler.

Se aplica a

Consulte también