HttpApplication Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define os métodos, propriedades e eventos que são comuns a todos os objetos de aplicação numa aplicação ASP.NET. Esta classe é a classe base para aplicações definidas pelo utilizador no ficheiro 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 seguintes demonstram como usar a HttpApplication aula e os seus eventos. O primeiro exemplo demonstra como criar um módulo HTTP personalizado e ligar um evento a ele. O segundo exemplo demonstra como modificar o ficheiro Web.config.
O exemplo seguinte demonstra como criar um módulo HTTP personalizado e ligar o AcquireRequestState evento ao módulo HTTP. Os módulos HTTP intercetam cada pedido para recursos da aplicação Web, permitindo assim filtrar pedidos do cliente. Qualquer módulo HTTP que subscreva 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 de ocorrer um evento num módulo HTTP personalizado, deve modificar as definições de configuração no ficheiro Web.config para ASP.NET notificar sobre o módulo HTTP. O exemplo seguinte mostra a configuração apropriada na httpModules secção do ficheiro Web.config. A seguinte configuração aplica-se ao modo Clássico do IIS 7.0 e às 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 seguinte definição aplica-se ao modo integrado 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>
Observações
As instâncias da classe HttpApplication são criadas na infraestrutura ASP.NET, não diretamente pelo utilizador. Uma instância da HttpApplication classe é usada para processar muitos pedidos ao longo da sua vida. No entanto, só pode processar um pedido de cada vez. Assim, variáveis membro podem ser usadas para armazenar dados por pedido.
Uma aplicação gera eventos que podem ser tratados por módulos personalizados que implementam a IHttpModule interface ou por código handler de eventos definido no ficheiro Global.asax. Módulos personalizados que implementam a IHttpModule interface podem ser colocados na pasta App_Code ou numa DLL na pasta Bin.
HttpApplication é introduzido na versão 3.5 do .NET Framework. Para mais informações, consulte Versões e Dependências.
Note
Ao executar o IIS 7.0 em modo Integrado, módulos personalizados na pasta App_Code ou na pasta Bin aplicam-se a todos os pedidos no pipeline de pedidos. O código do gestor de eventos no ficheiro Global.asax aplica-se apenas a pedidos que estejam mapeados para um handler ASP.NET.
Os eventos de candidatura são elevados pela seguinte ordem:
-
Após o PostResolveRequestCache evento e antes do PostMapRequestHandler evento, é criado um gestor de eventos (que é uma página que corresponde ao URL do pedido). Quando um servidor está a correr o IIS 7.0 em modo Integrado e pelo menos a versão 3.0 do .NET Framework, é ativado o evento MapRequestHandler. Quando um servidor está a executar o IIS 7.0 em modo Clássico ou numa versão anterior do IIS, este evento não pode ser gerido.
-
O gestor de eventos é executado.
-
Depois de o PostReleaseRequestState evento ser levantado, quaisquer filtros de resposta existentes irão filtrar a saída.
-
Este evento é suportado no modo integrado IIS 7.0 e pelo menos no .NET Framework 3.0
-
Este evento é suportado pelo modo integrado IIS 7.0 e pelo menos pelo .NET Framework 3.0
Construtores
| Name | Description |
|---|---|
| HttpApplication() |
Inicializa uma nova instância da HttpApplication classe. |
Propriedades
| Name | Description |
|---|---|
| Application |
Obtém o estado atual de uma aplicação. |
| Context |
Obtém informação específica HTTP sobre o pedido atual. |
| Events |
Obtém a lista de delegados handlers de eventos que processam todos os eventos da aplicação. |
| Modules |
Obtém a coleção de módulos para a aplicação atual. |
| Request |
Obtém o objeto de pedido intrínseco para o pedido atual. |
| Response |
Obtém o objeto de resposta intrínseco para o pedido atual. |
| Server |
Obtém o objeto intrínseco do servidor para o pedido atual. |
| Session |
Obtém o objeto intrínseco da sessão que fornece acesso aos dados da sessão. |
| Site |
Obtém ou define uma interface de site para uma IComponent implementação. |
| User |
Obtém o objeto de utilizador intrínseco para o pedido atual. |
Métodos
| Name | Description |
|---|---|
| AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado AcquireRequestState à coleção de gestores de eventos assíncronos AcquireRequestState para o pedido atual. |
| AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado AcquireRequestState à coleção de gestores de eventos assíncronos AcquireRequestState para o pedido atual. |
| AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado AuthenticateRequest à coleção de gestores de eventos assíncronos AuthenticateRequest para o pedido atual. |
| AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado AuthenticateRequest à coleção de gestores de eventos assíncronos AuthenticateRequest para o pedido atual. |
| AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado AuthorizeRequest à coleção de gestores de eventos assíncronos AuthorizeRequest para o pedido atual. |
| AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado AuthorizeRequest à coleção de gestores de eventos assíncronos AuthorizeRequest para o pedido atual. |
| AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado BeginRequest à coleção de gestores de eventos assíncronos BeginRequest para o pedido atual. |
| AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado BeginRequest à coleção de gestores de eventos assíncronos BeginRequest para o pedido atual. |
| AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado EndRequest à coleção de gestores de eventos assíncronos EndRequest para o pedido atual. |
| AddOnEndRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado EndRequest à coleção de gestores de eventos assíncronos EndRequest para o pedido atual. |
| AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado LogRequest à coleção de gestores de eventos assíncronos LogRequest para o pedido atual. |
| AddOnLogRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado LogRequest à coleção de gestores de eventos assíncronos LogRequest para o pedido atual. |
| AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado MapRequestHandler à coleção de gestores de eventos assíncronos MapRequestHandler para o pedido atual. |
| AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado MapRequestHandler à coleção de gestores de eventos assíncronos MapRequestHandler para o pedido atual. |
| AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostAcquireRequestState à coleção de gestores de eventos assíncronos PostAcquireRequestState para o pedido atual. |
| AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostAcquireRequestState à coleção de gestores de eventos assíncronos PostAcquireRequestState para o pedido atual. |
| AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostAuthorizeRequest à coleção de gestores de eventos assíncronos PostAuthorizeRequest para o pedido atual. |
| AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostAuthenticateRequest à coleção de gestores de eventos assíncronos PostAuthenticateRequest para o pedido atual. |
| AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o especificado PostAuthorizeRequest à coleção de gestores de eventos assíncronos PostAuthorizeRequest para o pedido atual. |
| AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostAuthorizeRequest à coleção de gestores de eventos assíncronos PostAuthorizeRequest para o pedido atual. |
| AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostLogRequest à coleção de gestores de eventos assíncronos PostLogRequest para o pedido atual. |
| AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostLogRequest à coleção de gestores de eventos assíncronos PostLogRequest para o pedido atual. |
| AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostMapRequestHandler à coleção de gestores de eventos assíncronos PostMapRequestHandler para o pedido atual. |
| AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostMapRequestHandler à coleção de gestores de eventos assíncronos PostMapRequestHandler para o pedido atual. |
| AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostReleaseRequestState à coleção de gestores de eventos assíncronos PostReleaseRequestState para o pedido atual. |
| AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostReleaseRequestState à coleção de gestores de eventos assíncronos PostReleaseRequestState para o pedido atual. |
| AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostRequestHandlerExecute à coleção de gestores de eventos assíncronos PostRequestHandlerExecute para o pedido atual. |
| AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostRequestHandlerExecute à coleção de gestores de eventos assíncronos PostRequestHandlerExecute para o pedido atual. |
| AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostResolveRequestCache à coleção de gestores de eventos assíncronos PostResolveRequestCache para o pedido atual. |
| AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostResolveRequestCache à coleção de gestores de eventos assíncronos PostResolveRequestCache para o pedido atual. |
| AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PostUpdateRequestCache à coleção de gestores de eventos assíncronos PostUpdateRequestCache para o pedido atual. |
| AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PostUpdateRequestCache à coleção de gestores de eventos assíncronos PostUpdateRequestCache para o pedido atual. |
| AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado PreRequestHandlerExecute à coleção de gestores de eventos assíncronos PreRequestHandlerExecute para o pedido atual. |
| AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado PreRequestHandlerExecute à coleção de gestores de eventos assíncronos PreRequestHandlerExecute para o pedido atual. |
| AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado ReleaseRequestState à coleção de gestores de eventos assíncronos ReleaseRequestState para o pedido atual. |
| AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado ReleaseRequestState à coleção de gestores de eventos assíncronos ReleaseRequestState para o pedido atual. |
| AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o handler de eventos especificado ResolveRequestCache à coleção de handlers de eventos assíncronos ResolveRequestCache para o pedido atual. |
| AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Adiciona o handler de eventos especificado ResolveRequestCache à coleção de handlers de eventos assíncronos ResolveRequestCache para o pedido atual. |
| AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Adiciona o evento especificado UpdateRequestCache à coleção de gestores de eventos assíncronos UpdateRequestCache para o pedido atual. |
| AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Adiciona o evento especificado UpdateRequestCache à coleção de gestores de eventos assíncronos UpdateRequestCache para o pedido atual. |
| CompleteRequest() |
Faz com que ASP.NET contorne todos os eventos e filtragens na cadeia de execução do pipeline HTTP e execute diretamente o evento EndRequest. |
| Dispose() |
Elimina a HttpApplication instância. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetOutputCacheProviderName(HttpContext) |
Obtém o nome do fornecedor de cache de saída predefinido que está configurado para um site Web. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetVaryByCustomString(HttpContext, String) |
Fornece uma implementação em toda a aplicação da VaryByCustom propriedade. |
| Init() |
Executa código de inicialização personalizado depois de todos os módulos gestores de eventos terem sido adicionados. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnExecuteRequestStep(Action<HttpContextBase,Action>) |
Especifica um callback para invocar quando um passo de execução do pedido é executado. |
| RegisterModule(Type) |
Regista um módulo de aplicação. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
evento
| Name | Description |
|---|---|
| AcquireRequestState |
Ocorre quando o ASP.NET adquire o estado atual (por exemplo, estado da sessão) associado ao pedido atual. |
| AuthenticateRequest |
Ocorre quando um módulo de segurança estabeleceu a identidade do utilizador. |
| AuthorizeRequest |
Ocorre quando um módulo de segurança tem autorização verificada do utilizador. |
| BeginRequest |
Ocorre como o primeiro evento na cadeia de execução do pipeline HTTP quando o ASP.NET responde a um pedido. |
| Disposed |
Ocorre quando a aplicação é descartada. |
| EndRequest |
Ocorre como o último evento na cadeia de execução do pipeline HTTP quando o ASP.NET responde a um pedido. |
| Error |
Ocorre quando uma exceção não tratada é lançada. |
| LogRequest |
Ocorre pouco antes do ASP.NET realizar qualquer registo para o pedido atual. |
| MapRequestHandler |
Ocorre quando o handler é selecionado para responder ao pedido. |
| PostAcquireRequestState |
Ocorre quando o estado do pedido (por exemplo, estado de sessão) associado ao pedido atual foi obtido. |
| PostAuthenticateRequest |
Ocorre quando um módulo de segurança estabeleceu a identidade do utilizador. |
| PostAuthorizeRequest |
Ocorre quando o utilizador do pedido atual foi autorizado. |
| PostLogRequest |
Ocorre quando ASP.NET completou o processamento de todos os gestores de eventos para o evento LogRequest. |
| PostMapRequestHandler |
Ocorre quando o ASP.NET mapeou o pedido atual para o gestor de eventos apropriado. |
| PostReleaseRequestState |
Ocorre quando o ASP.NET concluiu a execução de todos os manipuladores de eventos de pedido e os dados de estado do pedido foram armazenados. |
| PostRequestHandlerExecute |
Ocorre quando o gestor 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 contorna a execução do gestor de eventos atual e permite que um módulo de cache sirva um pedido a partir da cache. |
| PostUpdateRequestCache |
Ocorre quando o ASP.NET termina de atualizar módulos de cache e armazenar respostas que são usadas para servir pedidos subsequentes da cache. |
| PreRequestHandlerExecute |
Ocorre pouco antes do ASP.NET começar a executar um gestor de eventos (por exemplo, uma página ou um serviço Web XML). |
| PreSendRequestContent |
Ocorre pouco antes do ASP.NET enviar conteúdo para o cliente. |
| PreSendRequestHeaders |
Ocorre pouco antes do ASP.NET enviar cabeçalhos HTTP para o cliente. |
| ReleaseRequestState |
Ocorre depois de o ASP.NET terminar de executar todos os handlers de eventos de pedido. Este evento faz com que os módulos de estado guardem os dados de estado atuais. |
| RequestCompleted |
Ocorre quando os objetos geridos associados ao pedido foram libertados. |
| ResolveRequestCache |
Ocorre quando o ASP.NET termina um evento de autorização para permitir que os módulos de cache sirvam pedidos da cache, contornando a execução do gestor de eventos (por exemplo, uma página ou um serviço Web XML). |
| UpdateRequestCache |
Ocorre quando o ASP.NET termina de executar um gestor de eventos para permitir que os módulos de cache armazenem respostas que serão usadas para servir pedidos subsequentes da cache. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object) |
Inicia uma chamada assíncrona para o gestor de eventos HTTP. |
| IHttpAsyncHandler.EndProcessRequest(IAsyncResult) |
Fornece um método de processo |
| IHttpHandler.IsReusable |
Recebe um |
| IHttpHandler.ProcessRequest(HttpContext) |
Permite o processamento de pedidos HTTP Web por um gestor HTTP personalizado que implementa a IHttpHandler interface. |