Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 51405|Resposta: 5

[ASP.NET] asp.net interface do IHttpModule é explicada em detalhes

[Copiar link]
Publicado em 13/03/2018 21:46:06 | | | |
Escrito na frente

Sobre o conteúdo relevante do IHttpModule, também me perguntaram durante a entrevista, e senti vagamente que essa interface possui um método Init, que pode registrar uma série de eventos com o método Init na classe de implementação. Em casa, neste fim de semana, realmente não há nada para fazer, mesmo que seja para checar e preencher as lacunas desse conhecimento.

Funciona o IHttpModule

Amigos que conhecem asp.net ciclo de vida devem saber que a execução do HttpModule é executada antes do HttpHandler, depois de executar uma série de eventos do HttpModule, depois executar o HttpHandler e então executar alguns eventos do HttpModule. Para detalhes, consulte o diagrama do ciclo de vida a seguir.



O HttpHandler é o lugar para lidar com a requisição http, o HttpModule é a "única maneira" para uma requisição HTTP, então você pode adicionar algumas informações necessárias sobre as informações da requisição HTTP antes que essa requisição HTTP seja passada para o centro real de processamento de requisições (HttpHandler), ou fazer algum trabalho adicional nas informações interceptadas da requisição HTTP. Ou, em alguns casos, simplesmente terminar requisições HTTP que atendam a certas condições, o que pode funcionar como um filtro.

Uma requisição HTTP será passada para o contêiner HttpHandler em algum momento (evento ResolveRequestCache) durante a entrega do contêiner HttpModule. Após esse evento, o contêiner HttpModule cria uma instância de entrada do HttpHandler, mas em vez de abrir mão do controle da requisição HTTP, ele continua disparando os eventos AcquireRequestState e PreRequestHandlerExcute. Após o evento PreRequestHandlerExcute, a janela HttpModule concede temporariamente controle ao contêiner HttpHandler para o processamento real de requisições HTTP.

Dentro do contêiner HttpHandler, o método ProcessRequest é executado para lidar com requisições HTTP. Após o HttpHandler do contêiner processar toda a requisição HTTP, ele retorna o controle ao HttpModule, que continua a passar a informação processada da requisição HTTP camada por camada até que ela seja retornada ao cliente.

Uma instância

Estrutura do projeto



Código MyHttpModule

Registre um HttpModule personalizado em web.config

Navegar página Default.aspx



Então, qual é a ordem de execução de uma série de eventos no ciclo de vida?


Navegue pelos resultados



Use o HttpModule para encerrar a solicitação Http


resultado



resumo

Aqui apresentamos a interface mais importante do ciclo de vida asp.net, o IHttpModule, que pode ser descrito como uma interface de eventos, pois no método Init na classe de implementação, vários eventos do ciclo de vida podem ser registrados, e diferentes lógicas podem ser definidas no evento.





Anterior:Asp.Net introdução do IHttpHandler
Próximo:C# deve modificar essa solução alternativa de cabeçalho com os atributos ou métodos apropriados
 Senhorio| Publicado em 13/03/2018 21:46:47 |
. O NETFramework 4.5 oferece 25 eventos padrão.


 Senhorio| Publicado em 13/03/2018 21:47:03 |
. NETFramework 4.0, que oferece 19 eventos padrão.

1. ComeceSolicitação: O primeiro evento de asp.net a começar a processar a solicitação, indicando o início do processamento.

2. AuthenticateRequest: Solicitação de autenticação, geralmente usada para obter as informações do usuário da solicitação.

3. PostAuthenticateRequest: As informações do usuário solicitadas.

4. AuthorizeRequest: Autorização, geralmente usada para verificar se a solicitação do usuário recebeu permissão.

5. PostAuthorizeRequest: A solicitação do usuário foi autorizada.

6. ResolveRequestCache: Obtenha os resultados de processamento do cache de processamento anterior, se ele já foi armazenado em cache antes, não há necessidade de processar a solicitação e devolver diretamente os resultados em cache.

7. PostResolveRequestCache: O cache foi processado.

8. PostMapRequestHandler: O objeto processador solicitado foi criado com base no pedido do usuário.

9. AcquireRequestState: Obtenha o status da solicitação, que geralmente é usada para a sessão

10. PostAcquireRequestState: Sessão obtida

11. ExecutarGerenciador Pré-Pedido: Prepare o manipulador de execução.

12. ExecutarExecutarPósSolicitação: O manipulador foi executado

13. SolicitaçãoEstado-de_Liberação: O estado do pedido de liberação.

14. PostReleaseRequestEstado: O status do pedido foi divulgado.

15. UpdateRequestCache: Atualize o cache.

16. PostUpdateRequestCache: O cache foi atualizado.

17. LogRequest: A operação de log solicitada

18. PostLogRequest: A operação de log da solicitação foi concluída.

19. Encerrar o pedido: O pedido é processado.
Publicado em 22/04/2019 09:48:33 |
Salve nos favoritos
Publicado em 30/09/2021 19:19:09 |
Recentemente estudando. Leia com atenção
 Senhorio| Publicado em 14/07/2023 20:26:36 |
ASP.NET MVC conta solicitações com base nos módulos IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com