CodeShot

Middleware در مقابل Filter

Middleware در Pipeline درخواست اجرا می‌شود، اما Filter مخصوص MVC Controllerها است.

ویژگیMiddlewareFilter
سطح اجراکل PipelineMVC
وابستگیASP.NET CoreMVC
ترتیب اجراPipeline OrderFilter Order
مناسب Authبلهبله
مناسب Validationکمتربهتر

کِی از Middleware استفاده کنیم؟

برای Logging، Authentication، Exception Handling عمومی.

کِی از Filter استفاده کنیم؟

برای Validation و Logic مربوط به Action.

مثال Middleware

app.UseMiddleware();

مثال Filter

[Authorize] public IActionResult Index() { }

اشتباه رایج

قرار دادن Logic مربوط به Controller داخل Middleware.

جمع‌بندی

کل Request → Middleware

MVC Action → Filter