HttpApplication Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
-
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.
-
O manipulador de eventos é executado.
-
Depois que o evento for acionado, todos os PostReleaseRequestState filtros de resposta existentes filtrarão a saída.
-
Esse evento tem suporte no modo integrado do IIS 7.0 e, pelo menos, no .NET Framework 3.0
-
Este evento tem suporte para o modo integrado IIS 7.0 e, pelo menos, o .NET Framework 3.0
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 |
| IHttpHandler.IsReusable |
Obtém um |
| IHttpHandler.ProcessRequest(HttpContext) |
Habilita o processamento de solicitações da Web HTTP por um manipulador HTTP personalizado que implementa a IHttpHandler interface. |