net istringlocalizer cache asp and asp.net-mvc asp.net-core

asp.net-mvc - istringlocalizer - globalization asp.net core



asp.net core middleware vs filtros (2)

El middleware funciona en el nivel de ASP.NET Core y puede actuar en cada solicitud que llega a la aplicación.

Los filtros MVC, por otro lado, solo se ejecutan para solicitudes que llegan a MVC.

Entonces, por ejemplo, si quisiera hacer cumplir que todas las solicitudes deben hacerse a través de HTTPS, tendría que usar un middleware para eso. Si hice un filtro MVC que hiciera eso, los usuarios aún podrían solicitar, por ejemplo, archivos estáticos a través de HTTP.

Pero, por otro lado, algo que registra la duración de las solicitudes en los controladores MVC podría ser absolutamente un filtro de acción.

Después de leer sobre asp.net core middlware, estoy confundido sobre cuándo debo usar filtros y cuándo debo usar middlewares, ya que parecen lograr el mismo objetivo. ¿Cuándo deben usarse middlewares en lugar de fitlers?


Hay un video sobre esto en el canal 9: ASP.NET Monsters # 91: Middleware vs.Filtros . Para resumir el video:

Comienza la ejecución de la solicitud y tenemos un middleware, y otro middlerware, piense en ello como las "muñecas rusas dentro de las muñecas" y, finalmente, el middleware de enrutamiento se activa y luego la solicitud entra en la tubería de MVC. Entonces, si no necesita el contexto de MVC (digamos que le preocupa el flujo y la ejecución, como responder a los encabezados algún mecanismo de enrutamiento previo, etc.), use middlewares .
Pero si necesita el contexto de MVC y desea operar contra acciones, use filtros .