Esta documentação foi arquivada e não está sendo atualizada.

Introdução aos módulos HTTP

Visual Studio 2005

Um módulo HTTP é um módulo que é chamado em todas as solicitações feitas em seu aplicativo.Módulos HTTP são chamados como parte do canal de solicitação ASP.NET e têm acesso a eventos de ciclo de vida em toda a solicitação.Módulos HTTP, portanto, oferecem a você a oportunidade para examinar solicitações recebidas e tomar uma ação com base na solicitação.Eles também lhe dão a oportunidade de examinar a resposta de saída e modificá-la.

Módulos HTTP ASP.NET são semelhantes aos filtros ISAPI de forma que eles são executados em todas as solicitações. No entanto, eles são escritos em código gerenciado e são totalmente integrados com o ciclo de vida de uma aplicação ASP.NET.

Típico uso para módulos HTTP incluem:

  • Segurança.Porque você pode examinar as solicitações que chegam, seu módulo HTTP pode executar autenticação personalizada ou outras verificações de segurança antes da página solicitada, XML Web Services, ou manipulador ser chamado.

  • Estatísticas e log.Porque módulos HTTP são chamados em cada solicitação, você pode reunir estatísticas de solicitação e informações de log em um módulo centralizado, em vez de em páginas individuais.

  • Cabeçalhos ou rodapés personalizados.Porque você pode modificar a resposta de saída, você pode inserir conteúdo, como informações de cabeçalho personalizado para cada página ou resposta XML Web Services.

ASP.NET uses Módulos to implementar Diversos Features aplicativo, including Serviços autenticação de formulários, cache, estado da sessão, and script de cliente. Em cada caso, quando esses serviços estão ativados, o módulo é chamado como parte de uma solicitação e executa tarefas que estão fora do escopo de qualquer solicitação de página única. Os módulos podem consumir os eventos de aplicativo e pode gerar eventos que podem ser manipuladas no arquivo global. Para obter mais informações sobre eventos de aplicativos, consulte Visão geral sobre do ciclo de vida do aplicativo ASP.NET e .

ObservaçãoObservação:

Módulos HTTP diferem dos manipuladores HTTP. Módulos HTTP são chamados para todas as solicitações e respostas, enquanto manipuladores HTTP são executados apenas em resposta a solicitações específicas.Para obter mais informações, consulte Introdução aos manipuladores HTTP.

Você registra um módulo HTTP personalizado no arquivo Web.config do aplicativo.Quando ASP.NET cria uma instância da classe HttpApplication que representa seu aplicativo, instâncias de qualquer módulo que foram registradas são criadas.Quando um módulo é criado, o método Init é chamado e o módulo inicializa a si próprio. Para mais informações, consulte Ciclo de Vida do Aplicativo ASP.NET uma visão geral para o IIS 5.0 e 6.0.

In método Init 's a módulo, you can inscrever(-se) to Diversos Eventos aplicativo such as BeginRequest or EndRequest by ligação the Eventos to Métodos You have Criado in the módulo.Quando esses eventos são disparados, é chamado o método apropriado no seu módulo e o módulo pode executar qualquer lógica que for necessária, como uma verificação de autenticação ou registro de informações de solicitação.Durante manipulação de eventos, o módulo tem acesso à propriedade Context da solicitação atual. Isso permite que você redirecione a solicitação para uma página alternativa, modificar o pedido, ou realizar qualquer outra manipulação pedida. Por exemplo, se seu módulo inclui uma verificação de autenticação, o módulo pode verificar as credenciais e redirecionar para uma página de logon ou erro se as credenciais foram incorretas.Caso contrário, quando o módulo do manipulador de eventos tiver terminado sua execução, ASP.NET chama o seguinte processo no canal, que pode ser outro módulo ou pode ser um manipulador HTTP apropriado para a solicitação (como um arquivo.aspx).

Você pode implementar grande parte da funcionalidade de um módulo no arquivo Global.asax do aplicativo, o que lhe permite responder a eventos de aplicativos. Entretanto, módulos têm uma vantagem em relação ao arquivo Global.asax no que eles são encapsulados e possam ser criados uma vez e usado em vários aplicativos diferentes.Ao adicioná-los ao conjunto de cache global (GAC - Global Assembly Cache) e registrando-os no arquivo Machine.config, você pode reutilizá-los entre aplicativos.Para obter mais informações, consulte Cache global de assemblies.

No entanto, a vantagem de usar o modelo global. Arquivo ASAX é que você pode Código local em outros registrados eventos módulo como Session_Start e Session_End métodos. Além disso, o arquivo global permite instanciar objetos globais que estão disponíveis em todo o aplicativo.

You should use a módulo whenever You need to Criar Código that Depends on aplicativo Eventos and you Either wish to the módulo in Outro Applications reuse or you Don't desejar to local Código COMPLEX in the Global. Arquivo ASAX.Você deve colocar Código no arquivo Global.asax sempre que precisar criar um Código que depende eventos da aplicação e você não precisa reutilizá-lo entre aplicativos, ou quando você precisa assinar os eventos como Session_Start que nao estao disponiveis para os modulos.

Você pode criar um módulo HTTP customizado codificando uma classe que implemente a interface IHttpModule e então registrá-la no arquivo web.config.Is the processo Geral for Writing módulo an HTTP:

Para obter mais informações, consulte Como: Criar Módulos HTTP Personalizar.

Mostrar: