Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 51405|Respuesta: 5

[ASP.NET] asp.net interfaz de IHttpModule se explica en detalle

[Copiar enlace]
Publicado en 13/3/2018 21:46:06 | | | |
Escrito delante

En cuanto al contenido relevante de IHttpModule, también me preguntaron durante la entrevista, y sentí vagamente que esta interfaz tiene un método Init, que puede registrar una serie de eventos con el método Init en la clase de implementación. En casa este fin de semana, realmente no hay nada que hacer, aunque sea para comprobar y rellenar los vacíos de este conocimiento.

Funciona el IHttpModule

Los amigos que conozcan asp.net ciclo de vida deben saber que la ejecución de HttpModule se ejecuta antes de HttpHandler, y después de ejecutar una serie de eventos de HttpModule, luego ejecutar HttpHandler y después ejecutar algunos eventos de HttpModule. Para más detalles, consulte el siguiente diagrama del ciclo de vida.



El HttpHandler es el lugar para gestionar la solicitud http, el HttpModule es la "única manera" para una petición HTTP, así que puedes añadir la información requerida encima de la información de la solicitud HTTP antes de que esta petición HTTP pase al centro real de procesamiento de solicitudes (HttpHandler), o realizar trabajo adicional en la información interceptada de la solicitud HTTP. O en algunos casos, simplemente terminar las solicitudes HTTP que cumplen ciertas condiciones, lo que puede actuar como filtro.

Una solicitud HTTP se pasará al contenedor HttpHandler en algún momento (evento ResolveRequestCache) durante la entrega del contenedor HttpModule. Tras este evento, el contenedor HttpModule crea una instancia de entrada del HttpHandler, pero en lugar de ceder el control de la solicitud HTTP, continúa lanzando los eventos AcquireRequestState y PreRequestHandlerExcute. Tras el evento PreRequestHandlerExcute, la ventana HttpModule da temporalmente control al contenedor HttpHandler para el procesamiento real de solicitudes HTTP.

Dentro del contenedor HttpHandler, se ejecuta el método ProcesRequest para gestionar las solicitudes HTTP. Después de que el HttpHandler del contenedor procesa toda la petición HTTP, devuelve el control al HttpModule, que continúa pasando la información de la solicitud HTTP procesada capa por capa hasta que se devuelve al cliente.

Un caso

Estructura del proyecto



Código MyHttpModule

Registrar un HttpModule personalizado en web.config

Navegar por la página Default.aspx



¿Cuál es entonces el orden de ejecución de una serie de eventos en el ciclo vital?


Consulta los resultados



Utiliza HttpModule para terminar la solicitud Http


resultado



resumen

Aquí introducimos la interfaz más importante en el ciclo de vida de asp.net, IHttpModule, que puede describirse como una interfaz de eventos, porque en el método Init de la clase de implementación se pueden registrar varios eventos en el ciclo de vida y se pueden definir diversas lógicas en el evento.





Anterior:Asp.Net introducción de IHttpHandler
Próximo:C# debe modificar esta solución alternativa de encabezado con los atributos o métodos apropiados
 Propietario| Publicado en 13/3/2018 21:46:47 |
. NETFramework 4.5 ofrece 25 eventos estándar.


 Propietario| Publicado en 13/3/2018 21:47:03 |
. NETFramework 4.0, que ofrece 19 eventos estándar.

1. IniciarSolicitud: El primer evento de asp.net para comenzar a procesar la solicitud, indicando el inicio del procesamiento.

2. AuthenticateRequest: Solicitud de autenticación, generalmente utilizada para obtener la información de usuario de la solicitud.

3. PostAuthenticateRequest: La información del usuario solicitada.

4. AuthorizeRequest: Autorización, generalmente utilizada para comprobar si la solicitud del usuario ha recibido permiso.

5. PostAuthorizeRequest: La solicitud del usuario ha sido autorizada.

6. ResolveRequestCache: Obtener los resultados de procesamiento de la caché de procesamiento anterior, si ya se ha almacenado en caché antes, no es necesario procesar la solicitud y devolver directamente los resultados en caché.

7. PostResolveRequestCache: La caché ha sido procesada.

8. PostMapRequestHandler: El objeto procesador solicitado se ha creado a partir de la solicitud del usuario.

9. AcquireRequestState: Obtener el estado de la solicitud, que generalmente se utiliza para la sesión

10. PostAdquirieRequestState: Se ha obtenido la sesión

11. PreRequestHandlerExecute: Preparar el handler de ejecución.

12. PostRequestHandlerExecute: El manejador ha sido ejecutado

13. SolicitudDeliberaciónEstado: Estado de la solicitud de liberación.

14. PostReleaseRequestEstado: El estado de la solicitud ha sido publicado.

15. UpdateRequestCache: Actualizar la caché.

16. PostUpdateRequestCache: La caché ha sido actualizada.

17. LogRequest: La operación de registro solicitada

18. PostLogRequest: La operación de registro de la solicitud ha sido completada.

19. Fin de la solicitud: La solicitud está procesada.
Publicado en 22/4/2019 9:48:33 |
Guárdalo en favoritos
Publicado en 30/9/2021 19:19:09 |
Recientemente estudiando. Léelo con atención
 Propietario| Publicado en 14/7/2023 20:26:36 |
ASP.NET MVC cuenta las solicitudes basadas en módulos IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com