Middleware vs Filters

در .net core هر دوی این موارد بر روی pipeline برنامه‌های .net core اجرا می‌شوند و پس از آنها متدهای داخل برنامه شروع به اجرا می‌شوند. این اقلام توانایی این رو دارند که ورودی و خروجی متدها را تغییر دهند و در اغلب موارد قابلیت اجرا به جای یکدیگر را دارند.

تنها تفاوت آنها، در محدود (scope) اجرای آنها است، filterها بخشی از MVC هستند و بنابر این به مواردی مثل Routing یا Model Binding دسترسی دارند اما Middlewareها بر روی HttpContext دسترسی دارند.