INFO: Descrição geral de rotinas de tratamento HTTP e módulos HTTP do ASP.NET

Traduções de Artigos Traduções de Artigos
Artigo: 307985 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo fornece uma introdução ao HTTP ASP.NET módulos e processadores de HTTP.

Para descrições gerais do ASP.NET adicionais, consulte o seguinte artigo da base de dados de conhecimento da Microsoft:
305140INFO: Plano de ASP.NET

Mais Informação

Módulos de HTTP e processadores de HTTP são uma parte integral da arquitectura do ASP.NET. Enquanto um pedido for processado, cada pedido é processado por vários módulos de HTTP (por exemplo, o módulo de autenticação e o módulo de sessão) e, em seguida, é processado por um único processador de HTTP. Depois da rotina de tratamento processou o pedido, o pedido flui através de HTTP módulos.

Este artigo está dividido nas seguintes secções:

HTTP Modules

Módulos denominam-se antes e depois executa a rotina de tratamento. Módulos permitem que os programadores interceptar, participar em ou modificar cada pedido individual. Módulos implementam a interface IHttpModule , localizada no espaço de nomes System.Web .

Available Events

Uma classe HttpApplication fornece um número de eventos com o qual podem sincronizar módulos. Os eventos seguintes estão disponíveis para módulos sincronizar com em cada pedido. Estes eventos estão listados na ordem sequencial:
  • BeginRequest : pedido foi iniciado. Se necessitar de fazer algo no início de um pedido (por exemplo, apresentar anúncio faixas na parte superior de cada página), sincronize este evento.
  • AuthenticateRequest : Se pretender ligar no seu próprio esquema de autenticação personalizada (por exemplo, procure um utilizador numa base de dados para validar a palavra-passe), crie um módulo que sincroniza este evento e autentica o utilizador como pretende.
  • AuthorizeRequest : Este evento é utilizado internamente para implementar mecanismos de autorização (por exemplo, para armazenar listas de controlo de acesso (ACLs) de uma base de dados em vez do sistema de ficheiros). Apesar de pode substituir este evento, não existem vários bons motivos para o fazer.
  • ResolveRequestCache : Este evento determina se uma página pode ser servida a partir da saída cache. Se pretender escrever a sua própria colocação em cache módulo (por exemplo, com base em ficheiros de compilação cache em vez do cache de memória), sincronize este evento para determinar se deve servir a página a partir da cache.
  • AcquireRequestState : o estado da sessão é obtido de arquivo de estado. Se pretender criar o seus próprios módulo de gestão estado, sincronize este evento para obter o estado de sessão do arquivo de estado.
  • PreRequestHandlerExecute : Este evento ocorre antes do processador de HTTP é executado.
  • PostRequestHandlerExecute : Este evento ocorre depois do processador de HTTP é executado.
  • ReleaseRequestState : o estado da sessão é armazenado novamente no arquivo de estado. Se estiver a criar um módulo de estado de sessão personalizados, tem de guardar o estado no arquivo de estado.
  • UpdateRequestCache : Este evento escreve saída novamente à cache de saída. Se estiver a criar um módulo de cache personalizado, escrever novamente para a cache de saída.
  • EndRequest : pedido foi concluído. Poderá pretender criar um módulo de depuração que recolhe informações durante o pedido e, em seguida, escreve as informações para a página.
Os eventos seguintes estão disponíveis para módulos sincronizar com para cada pedido de transmissão. A ordem destes eventos é não determinista.
  • PreSendRequestHeaders : Este evento ocorre antes dos cabeçalhos são enviados. Se pretender adicionar cabeçalhos adicionais, pode sincronizar este evento a partir de um módulo personalizado.
  • PreSendRequestContent : Este evento ocorre quando o método Response.Flush é chamado. Se pretender adicionar conteúdo adicional, pode sincronizar este evento a partir de um módulo personalizado.
  • erro : Este evento ocorre quando uma excepção não processada. Se pretender escrever um módulo de rotina de tratamento de erro personalizadas, sincronize este evento.

Configuring HTTP Modules

O processador da secção de configuração <httpmodules> é responsável por configurar os módulos HTTP dentro de uma aplicação. Pode ser declarada no computador, site ou nível de aplicação. Utilize a seguinte sintaxe para o processador da secção <httpmodules>:
<httpModules>
   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <clear />
</httpModules>
				

Creating HTTP Modules

Para criar um módulo HTTP, tem de implementar a interface IHttpModule . A interface IHttpModule tem dois métodos com as seguintes assinaturas:
void Init(HttpApplication);
void Dispose();
				
Para obter informações adicionais sobre como criar módulos de HTTP, clique os números de artigo existente abaixo para visualizar os artigos na base de dados de conhecimento da Microsoft:
308000COMO: Criar um módulo de HTTP do ASP.NET utilizando o Visual Basic .NET
307996COMO: Criar um módulo de HTTP do ASP.NET utilizando o Visual C# .NET

HTTP Handlers

Processadores são utilizados para processar pedidos individuais de ponto final. Rotinas de tratamento de activar a estrutura ASP.NET processar URLs de HTTP individuais ou grupos de extensões URL numa aplicação. Ao contrário dos módulos de único processador é utilizado para processar um pedido. Todos os processadores implementam a interface IHttpHandler , localizada no espaço de nomes System.Web . Processadores são um pouco análogas às Internet Server extensões de ISAPI (Application Programming Interface).

Configuring HTTP Handlers

O processador da secção de configuração <httphandlers> é responsável pelo mapeamento de URL a receber para oclasse IHttpHandler ou IHttpHandlerFactory . Pode ser declarada no computador, site ou nível de aplicação. Subdirectórios herdam estas definições.

Os administradores utilizam a directiva de tag <add> para configurar a secção <httphandlers>. <add> directivas são interpretadas e processadas por uma ordem sequencial de cima para baixo. Utilize a seguinte sintaxe para o processador da secção <httphandler>:
<httpHandlers>
   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
   <remove verb="[verb list]" path="[path/wildcard]" />
   <clear />
</httpHandlers>
				

Creating HTTP Handlers

Para criar um processador de HTTP, tem de implementar a interface IHttpHandler . A interface IHttpHandler tem um método e uma propriedade com as seguintes assinaturas:
void ProcessRequest(HttpContext);
bool IsReusable {get;}
				
Nota : Se o estado da sessão é necessário o processador de HTTP, tem também de implementa a interface IRequiresSessionState . Para obter informações adicionais sobre como criar processadores de HTTP, clique os números de artigo existente abaixo para visualizar os artigos na base de dados de conhecimento da Microsoft:
308001COMO: Criar um processador de HTTP do ASP.NET utilizando o Visual C# .NET
Para obter informações adicionais, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
307997COMO: Criar um processador de HTTP do ASP.NET utilizando o Visual Basic .NET

Propriedades

Artigo: 307985 - Última revisão: 23 de fevereiro de 2007 - Revisão: 3.5
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbarttyperoadmap kbhttphandlers kbhttpmodule kbhttpruntime kbinfo KB307985 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307985

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com