INFO: Visão geral de manipuladores HTTP e módulos HTTP ASP.NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 307985 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

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

Para adicionais visões gerais sobre ASP.NET, consulte o seguinte artigo:
305140INFO: Guia de ASP.NET

Mais Informações

Módulos HTTP e manipuladores HTTP são uma parte integral da arquitetura do ASP.NET. Enquanto uma solicitação está sendo processada, cada solicitação é processada por vários módulos HTTP (por exemplo, o módulo de autenticação e o módulo de sessão) e, em seguida, é processada por um único manipulador HTTP. Depois que o manipulador de tiver processado a solicitação, a solicitação flui volta através de HTTP módulos.

Este artigo está dividido em seções a seguir:

HTTP Modules

Módulos são denominados antes e depois executa o manipulador. Módulos permitem que os desenvolvedores interceptar, participar ou modificar cada solicitação individual. Módulos implementam a interface IHttpModule , que é localizada no namespace System.Web .

Available Events

Uma classe HttpApplication fornece um número de eventos com o qual podem sincronizar módulos. Os eventos a seguir estão disponíveis para os módulos sincronizar com cada solicitação. Esses eventos estão listados em ordem seqüencial:
  • BeginRequest : solicitação foi iniciada. Se você precisar fazer alguma coisa no início de uma solicitação (por exemplo, exibição anúncio faixas na parte superior de cada página), sincronize este evento.
  • AuthenticateRequest : se você deseja conectar em seu próprio esquema de autenticação personalizada (por exemplo, pesquisar de um usuário em um banco de dados para validar a senha), criar um módulo que sincroniza esse evento e autentica o usuário como você deseja.
  • AuthorizeRequest : O evento é usado internamente para implementar mecanismos de autorização (por exemplo, para armazenar suas listas de controle de acesso (ACLs) em um banco de dados em vez do sistema de arquivos). Embora você pode substituir esse evento, não existem vários bons motivos para fazer isso.
  • ResolveRequestCache : O evento determina se uma página pode ser atendida da saída cache. Se você deseja gravar seu próprio cache de módulo (por exemplo, cache de compilação um baseado em arquivo em vez de um cache de memória), sincronize esse evento para determinar se deve atender a página do cache.
  • AcquireRequestState : estado de sessão é recuperado do armazenamento de estado. Se você quiser criar seu próprio módulo de gerenciamento de estado, sincronize esse evento para capturar o estado de sessão do seu armazenamento de estado.
  • PreRequestHandlerExecute : O evento ocorre antes do manipulador HTTP é executado.
  • PostRequestHandlerExecute : O evento ocorre depois que o manipulador HTTP é executado.
  • ReleaseRequestState : o estado da sessão é armazenado novamente no armazenamento de estado. Se você estiver criando um módulo de estado de sessão personalizado, você deve armazenar seu estado novamente no armazenamento de estado.
  • UpdateRequestCache : O evento grava saída para o cache de saída. Se você estiver criando um módulo do cache personalizado, você gravar novamente em seu cache a saída.
  • EndRequest : solicitação foi concluída. Talvez queira criar um módulo de depuração que reúne informações em toda a solicitação e, em seguida, grava as informações para a página.
Os eventos a seguir estão disponíveis para os módulos sincronizar com para cada solicitação de transmissão. A ordem desses eventos é não-determinística.
  • PreSendRequestHeaders : O evento ocorre antes dos cabeçalhos são enviados. Se você quiser adicionar cabeçalhos adicionais, você pode sincronizar este evento a partir um módulo personalizado.
  • PreSendRequestContent : O evento ocorre quando o método Response.Flush é chamado. Se você deseja adicionar conteúdo adicional, você pode sincronizar este evento a partir um módulo personalizado.
  • erro : O evento ocorre quando ocorre uma exceção não tratada. Se você deseja gravar um módulo de manipulador de erro personalizadas, sincronize este evento.

Configuring HTTP Modules

O manipulador de seção de configuração <httpmodules> é responsável por configurar os módulos HTTP em um aplicativo. Ela pode ser declarada no computador, site ou nível de aplicativo. Use a seguinte sintaxe para o manipulador de seçã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, você deve 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 HTTP, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
308000COMO: Criar um módulo de HTTP do ASP.NET usando o Visual Basic .NET
307996COMO: Criar um módulo de HTTP do ASP.NET usando o Visual translation from VPE for Csharp .NET

HTTP Handlers

Manipuladores são usados para processar solicitações de ponto de extremidade individuais. Manipuladores de ativar a estrutura ASP.NET processar URLs HTTP individuais ou grupos de extensões de URL em um aplicativo. Ao contrário dos módulos, apenas um manipulador é usado para processar uma solicitação. Todos os manipuladores implementam a interface IHttpHandler , que é localizada no namespace System.Web . Manipuladores são um pouco análogos ao servidor de Internet extensões ISAPI (Application Programming Interface).

Configuring HTTP Handlers

O manipulador de seção de configuração <httphandlers> é responsável por mapeamento de URLs de entrada para oclasse IHttpHandlerFactory ou IHttpHandler . Ela pode ser declarada no computador, site ou nível de aplicativo. Subdiretórios herdam essas configurações.

Os administradores usam a diretiva de marca <add> para configurar a seção <httphandlers>. <add> diretivas são interpretadas e processadas em uma ordem seqüencial de cima para baixo. Use a seguinte sintaxe para o manipulador de seçã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 manipulador HTTP, você deve implementar a interface IHttpHandler . A interface IHttpHandler tem um método e uma propriedade com as seguintes assinaturas:
void ProcessRequest(HttpContext);
bool IsReusable {get;}
				
Observação : se o estado da sessão for necessária no seu manipulador HTTP, você também precisará implementar a interface IRequiresSessionState . Para obter informações adicionais sobre como criar manipuladores HTTP, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
308001COMO: Criar um manipulador de HTTP do ASP.NET usando o Visual translation from VPE for Csharp .NET
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
307997COMO: Criar um manipulador de HTTP do ASP.NET usando o Visual Basic .NET

Propriedades

ID do artigo: 307985 - Última revisão: sexta-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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