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, 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:
-
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.
-
O manipulador de eventos é executado.
-
Depois que o evento for gerado, 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
-
Esse evento tem suporte para o modo integrado do IIS 7.0 e pelo menos o .NET Framework 3.0
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 |
IHttpHandler.IsReusable |
Obtém um valor |
IHttpHandler.ProcessRequest(HttpContext) |
Permite o processamento de solicitações HTTP da Web por um manipulador de eventos personalizado que implementa a interface IHttpHandler. |