HttpApplication Classe

Definição

Define os métodos, as propriedades e os 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 definições de configuração 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 HttpApplication classe 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. Portanto, as variáveis de membro podem ser usadas para armazenar dados por solicitação.

Um aplicativo gera eventos que podem ser manipulados 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 saber mais, confira Versões e dependências.

Observação

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 MapRequestHandler evento é 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 gerado, 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

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

  19. EndRequest

Construtores

HttpApplication()

Inicializa uma nova instância da classe HttpApplication.

Propriedades

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 delegados de manipulador de eventos que processa todos os eventos de aplicativo.

Modules

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

Request

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

Response

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

Server

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

Session

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

Site

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

User

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

Métodos

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

CompleteRequest()

Faz com que o ASP.NET ignore todos os eventos e filtragem na cadeia de pipeline de HTTP e executa diretamente o evento EndRequest.

Dispose()

Descarta a instância HttpApplication.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetOutputCacheProviderName(HttpContext)

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

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetVaryByCustomString(HttpContext, String)

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

Init()

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

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(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

AcquireRequestState

Ocorre quando o ASP.NET adquire o estado atual (por exemplo, o estado de sessão) que está 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 verificou a autorização do usuário.

BeginRequest

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

Disposed

Ocorre quando o aplicativo é descartado.

EndRequest

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

Error

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

LogRequest

Ocorre imediatamente antes do ASP.NET executar registros em log para a solicitação atual.

MapRequestHandler

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

PostAcquireRequestState

Ocorre quando o estado de solicitação (por exemplo, o estado de sessão) que está 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 obteve autorização.

PostLogRequest

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

PostMapRequestHandler

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

PostReleaseRequestState

Ocorre quando o ASP.NET concluiu a execução de todos os manipuladores de eventos da solicitação e os dados do 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) termina a execução.

PostResolveRequestCache

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

PostUpdateRequestCache

Ocorre quando o ASP.NET finaliza a atualização de cache de módulos e armazena as respostas que são usadas para atender às solicitações subsequentes do cache.

PreRequestHandlerExecute

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

PreSendRequestContent

Ocorre imediatamente antes do ASP.NET enviar conteúdo ao cliente.

PreSendRequestHeaders

Ocorre imediatamente antes do ASP.NET enviar cabeçalhos HTTP para o cliente.

ReleaseRequestState

Ocorre depois que o ASP.NET conclui a execução de todos os manipuladores de eventos de solicitação. Esse evento faz com que os módulos de estado salvem os dados do estado atual.

RequestCompleted

Ocorre quando os objetos gerenciados que estão associados à solicitação são liberados.

ResolveRequestCache

Ocorre quando o ASP.NET finaliza um evento de autorização para permitir que os módulos de cache atendam às 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 o ASP.NET conclui a execução de um manipulador de eventos para permitir que os módulos de cache armazenem as respostas que serão usadas para atender a solicitações posteriores do cache.

Implantações explícitas de interface

IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

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

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

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

IHttpHandler.IsReusable

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

IHttpHandler.ProcessRequest(HttpContext)

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

Aplica-se a

Confira também