HttpApplication Classe

Definição

Define os métodos, propriedades e eventos comuns a todos os objetos de aplicativo em um aplicativo ASP.NET. Essa classe é a classe base para aplicativos definidos pelo usuário no arquivo 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
Herança
HttpApplication
Implementações

Exemplos

Os dois exemplos a seguir demonstram como usar a HttpApplication classe e seus eventos. O primeiro exemplo demonstra como criar um módulo HTTP personalizado e conectar um evento a ele. O segundo exemplo demonstra como modificar o arquivo Web.config.

O exemplo a seguir demonstra como criar um módulo HTTP personalizado e conectar o AcquireRequestState evento ao módulo HTTP. Os módulos HTTP interceptam cada solicitação para recursos de aplicativo Web, permitindo que você filtre solicitações de cliente. Qualquer módulo HTTP que assine um HttpApplication evento deve implementar a IHttpModule interface.

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 que um evento em um módulo HTTP personalizado possa ocorrer, você deve modificar as configurações no arquivo Web.config para notificar ASP.NET sobre o módulo HTTP. O exemplo a seguir mostra a configuração apropriada na httpModules seção do arquivo Web.config. A configuração a seguir se aplica ao modo clássico do IIS 7.0 e a versões anteriores do 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>

A configuração a seguir se aplica ao modo integrado do 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>

Comentários

As instâncias da classe HttpApplication são criadas na infraestrutura ASP.NET, não diretamente pelo usuário. Uma instância da HttpApplication classe é usada para processar muitas solicitações em seu tempo de vida. No entanto, ele pode processar apenas uma solicitação por vez. Assim, as variáveis de membro podem ser usadas para armazenar dados por solicitação.

Um aplicativo gera eventos que podem ser tratados por módulos personalizados que implementam a IHttpModule interface ou pelo código do manipulador de eventos definido no arquivo Global.asax. Módulos personalizados que implementam a IHttpModule interface podem ser colocados na pasta App_Code ou em uma DLL na pasta Bin.

HttpApplication é introduzido no .NET Framework versão 3.5. Para obter mais informações, consulte Versões e dependências.

Note

Ao executar o IIS 7.0 no modo integrado, os módulos personalizados na pasta App_Code ou na pasta Bin se aplicam a todas as solicitações no pipeline de solicitação. O código do manipulador de eventos no arquivo Global.asax só se aplica a solicitações mapeadas para um manipulador de ASP.NET.

Os eventos do aplicativo são gerados na seguinte ordem:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    Após o PostResolveRequestCache evento e antes do PostMapRequestHandler evento, um manipulador de eventos (que é uma página que corresponde à URL da solicitação) é criado. Quando um servidor está executando o IIS 7.0 no modo integrado e pelo menos o .NET Framework versão 3.0, o evento MapRequestHandler é gerado. Quando um servidor está executando o IIS 7.0 no modo Clássico ou uma versão anterior do IIS, esse evento não pode ser tratado.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    O manipulador de eventos é executado.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    Depois que o evento for acionado, todos os PostReleaseRequestState filtros de resposta existentes filtrarão a saída.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Esse evento tem suporte no modo integrado do IIS 7.0 e, pelo menos, no .NET Framework 3.0

  18. PostLogRequest

    Este evento tem suporte para o modo integrado IIS 7.0 e, pelo menos, o .NET Framework 3.0

  19. EndRequest

Construtores

Nome Description
HttpApplication()

Inicializa uma nova instância da classe HttpApplication.

Propriedades

Nome Description
Application

Obtém o estado atual de um aplicativo.

Context

Obtém informações específicas de HTTP sobre a solicitação atual.

Events

Obtém a lista de representantes do manipulador de eventos que processam todos os eventos do aplicativo.

Modules

Obtém a coleção de módulos para o aplicativo atual.

Request

Obtém o objeto de solicitação intrínseca da solicitação atual.

Response

Obtém o objeto de resposta intrínseco da solicitação atual.

Server

Obtém o objeto de servidor intrínseco da solicitação atual.

Session

Obtém o objeto de sessão intrínseco que fornece acesso aos dados de sessão.

Site

Obtém ou define uma interface do site para uma implementação IComponent .

User

Obtém o objeto de usuário intrínseco para a solicitação atual.

Métodos

Nome Description
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado AcquireRequestState à coleção de manipuladores de eventos assíncronos AcquireRequestState para a solicitação atual.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado AcquireRequestState à coleção de manipuladores de eventos assíncronos AcquireRequestState para a solicitação atual.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado AuthenticateRequest à coleção de manipuladores de eventos assíncronos AuthenticateRequest para a solicitação atual.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado AuthenticateRequest à coleção de manipuladores de eventos assíncronos AuthenticateRequest para a solicitação atual.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado AuthorizeRequest à coleção de manipuladores de eventos assíncronos AuthorizeRequest para a solicitação atual.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado AuthorizeRequest à coleção de manipuladores de eventos assíncronos AuthorizeRequest para a solicitação atual.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado BeginRequest à coleção de manipuladores de eventos assíncronos BeginRequest para a solicitação atual.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado BeginRequest à coleção de manipuladores de eventos assíncronos BeginRequest para a solicitação atual.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado EndRequest à coleção de manipuladores de eventos assíncronos EndRequest para a solicitação atual.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado EndRequest à coleção de manipuladores de eventos assíncronos EndRequest para a solicitação atual.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado LogRequest à coleção de manipuladores de eventos assíncronos LogRequest para a solicitação atual.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado LogRequest à coleção de manipuladores de eventos assíncronos LogRequest para a solicitação atual.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado MapRequestHandler à coleção de manipuladores de eventos assíncronos MapRequestHandler para a solicitação atual.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado MapRequestHandler à coleção de manipuladores de eventos assíncronos MapRequestHandler para a solicitação atual.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostAcquireRequestState à coleção de manipuladores de eventos assíncronos PostAcquireRequestState para a solicitação atual.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostAcquireRequestState à coleção de manipuladores de eventos assíncronos PostAcquireRequestState para a solicitação atual.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostAuthorizeRequest à coleção de manipuladores de eventos assíncronos PostAuthorizeRequest para a solicitação atual.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostAuthenticateRequest à coleção de manipuladores de eventos assíncronos PostAuthenticateRequest para a solicitação atual.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o especificado PostAuthorizeRequest à coleção de manipuladores de eventos assíncronos PostAuthorizeRequest para a solicitação atual.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostAuthorizeRequest à coleção de manipuladores de eventos assíncronos PostAuthorizeRequest para a solicitação atual.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostLogRequest à coleção de manipuladores de eventos assíncronos PostLogRequest para a solicitação atual.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostLogRequest à coleção de manipuladores de eventos assíncronos PostLogRequest para a solicitação atual.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostMapRequestHandler à coleção de manipuladores de eventos assíncronos PostMapRequestHandler para a solicitação atual.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostMapRequestHandler à coleção de manipuladores de eventos assíncronos PostMapRequestHandler para a solicitação atual.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostReleaseRequestState à coleção de manipuladores de eventos assíncronos PostReleaseRequestState para a solicitação atual.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostReleaseRequestState à coleção de manipuladores de eventos assíncronos PostReleaseRequestState para a solicitação atual.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostRequestHandlerExecute à coleção de manipuladores de eventos assíncronos PostRequestHandlerExecute para a solicitação atual.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostRequestHandlerExecute à coleção de manipuladores de eventos assíncronos PostRequestHandlerExecute para a solicitação atual.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostResolveRequestCache à coleção de manipuladores de eventos assíncronos PostResolveRequestCache para a solicitação atual.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostResolveRequestCache à coleção de manipuladores de eventos assíncronos PostResolveRequestCache para a solicitação atual.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PostUpdateRequestCache à coleção de manipuladores de eventos assíncronos PostUpdateRequestCache para a solicitação atual.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PostUpdateRequestCache à coleção de manipuladores de eventos assíncronos PostUpdateRequestCache para a solicitação atual.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado PreRequestHandlerExecute à coleção de manipuladores de eventos assíncronos PreRequestHandlerExecute para a solicitação atual.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado PreRequestHandlerExecute à coleção de manipuladores de eventos assíncronos PreRequestHandlerExecute para a solicitação atual.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado ReleaseRequestState à coleção de manipuladores de eventos assíncronos ReleaseRequestState para a solicitação atual.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado ReleaseRequestState à coleção de manipuladores de eventos assíncronos ReleaseRequestState para a solicitação atual.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o manipulador de eventos especificado ResolveRequestCache à coleção de manipuladores de eventos assíncronos ResolveRequestCache para a solicitação atual.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Adiciona o manipulador de eventos especificado ResolveRequestCache à coleção de manipuladores de eventos assíncronos ResolveRequestCache para a solicitação atual.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Adiciona o evento especificado UpdateRequestCache à coleção de manipuladores de eventos assíncronos UpdateRequestCache para a solicitação atual.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Adiciona o evento especificado UpdateRequestCache à coleção de manipuladores de eventos assíncronos UpdateRequestCache para a solicitação atual.

CompleteRequest()

Faz com que ASP.NET ignorar todos os eventos e filtragem na cadeia de execução do pipeline HTTP e executar diretamente o evento EndRequest.

Dispose()

Descarta a HttpApplication instância.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetOutputCacheProviderName(HttpContext)

Obtém o nome do provedor de cache de saída padrão configurado para um site.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetVaryByCustomString(HttpContext, String)

Fornece uma implementação em todo o aplicativo da VaryByCustom propriedade.

Init()

Executa o código de inicialização personalizado depois que todos os módulos do manipulador de eventos foram adicionados.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

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

Especifica um retorno de chamada a ser invocado quando uma etapa de execução de solicitação é executada.

RegisterModule(Type)

Registra um módulo de aplicativo.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Nome Description
AcquireRequestState

Ocorre quando ASP.NET adquire o estado atual (por exemplo, estado de sessão) associado à solicitação atual.

AuthenticateRequest

Ocorre quando um módulo de segurança estabeleceu a identidade do usuário.

AuthorizeRequest

Ocorre quando um módulo de segurança verifica a autorização do usuário.

BeginRequest

Ocorre como o primeiro evento na cadeia de execução do pipeline HTTP quando ASP.NET responde a uma solicitação.

Disposed

Ocorre quando o aplicativo é descartado.

EndRequest

Ocorre como o último evento na cadeia de execução de pipeline HTTP quando ASP.NET responde a uma solicitação.

Error

Ocorre quando uma exceção sem tratamento é gerada.

LogRequest

Ocorre pouco antes de ASP.NET executa qualquer registro em log para a solicitação atual.

MapRequestHandler

Ocorre quando o manipulador é selecionado para responder à solicitação.

PostAcquireRequestState

Ocorre quando o estado da solicitação (por exemplo, estado de sessão) associado à solicitação atual foi obtido.

PostAuthenticateRequest

Ocorre quando um módulo de segurança estabeleceu a identidade do usuário.

PostAuthorizeRequest

Ocorre quando o usuário da solicitação atual foi autorizado.

PostLogRequest

Ocorre quando ASP.NET concluiu o processamento de todos os manipuladores de eventos para o evento LogRequest.

PostMapRequestHandler

Ocorre quando ASP.NET mapeou a solicitação atual para o manipulador de eventos apropriado.

PostReleaseRequestState

Ocorre quando ASP.NET concluiu a execução de todos os manipuladores de eventos de solicitação e os dados de estado da solicitação foram armazenados.

PostRequestHandlerExecute

Ocorre quando o manipulador de eventos ASP.NET (por exemplo, uma página ou um serviço Web XML) conclui a execução.

PostResolveRequestCache

Ocorre quando ASP.NET ignora a execução do manipulador de eventos atual e permite que um módulo de cache atenda a uma solicitação do cache.

PostUpdateRequestCache

Ocorre quando ASP.NET termina de atualizar módulos de cache e armazenar respostas que são usadas para atender às solicitações subsequentes do cache.

PreRequestHandlerExecute

Ocorre pouco antes de ASP.NET começar a executar um manipulador de eventos (por exemplo, uma página ou um serviço Web XML).

PreSendRequestContent

Ocorre pouco antes de ASP.NET enviar conteúdo para o cliente.

PreSendRequestHeaders

Ocorre pouco antes de ASP.NET envia cabeçalhos HTTP para o cliente.

ReleaseRequestState

Ocorre depois que ASP.NET termina de executar todos os manipuladores de eventos de solicitação. Esse evento faz com que os módulos de estado salvem os dados de estado atuais.

RequestCompleted

Ocorre quando os objetos gerenciados associados à solicitação foram liberados.

ResolveRequestCache

Ocorre quando ASP.NET conclui um evento de autorização para permitir que os módulos de cache atendam solicitações do cache, ignorando a execução do manipulador de eventos (por exemplo, uma página ou um serviço Web XML).

UpdateRequestCache

Ocorre quando ASP.NET termina de executar um manipulador de eventos para permitir que os módulos de cache armazenem respostas que serão usadas para atender às solicitações subsequentes do cache.

Implantações explícitas de interface

Nome Description
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Inicia uma chamada assíncrona para o manipulador de eventos HTTP.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Fornece um método de processo End assíncrono quando o processo é concluído.

IHttpHandler.IsReusable

Obtém um Boolean valor que indica se outra solicitação pode usar o IHttpHandler objeto.

IHttpHandler.ProcessRequest(HttpContext)

Habilita o processamento de solicitações da Web HTTP por um manipulador HTTP personalizado que implementa a IHttpHandler interface.

Aplica-se a

Confira também