TGViewer
C# Portal | Программирование C# Portal | Программирование @kodblog · 13K subscribers
Post #2429 1.23K
Чем отличаются middleware и фильтры в .NET?

Фильтры в ASP.NET Core:
• Имеют доступ к контексту MVC: данным маршрутизации и, на соответствующих этапах, результатам привязки модели.
• Выполняются внутри конвейера MVC при обработке действий контроллера.
• Применяются к действиям контроллеров.
• Используются для задач MVC: логирования, авторизации и валидации.
• Примеры: ActionFilterAttribute и ResultFilterAttribute.
• Позволяют вынести общую логику обработки действий MVC в отдельные компоненты.
• Имеют доступ к HttpContext, но ориентированы на обработку в рамках MVC.
• Порядок выполнения зависит от типа фильтра, значения Order и области применения.
• Могут применяться глобально, к отдельному контроллеру или действию.

Middleware в ASP.NET Core:
• Являются частью HTTP-конвейера обработки запросов.
• Могут выполнять логику до и после следующих компонентов, а также прерывать обработку запроса.
• Применяются ко всему приложению или к отдельным веткам конвейера.
• Настраиваются в Program.cs, а в проектах с классом Startup — в Startup.cs.
• Примеры регистрации: UseAuthentication(), UseAuthorization() и UseRouting().
• Решают общие задачи обработки запросов, не ограничиваясь MVC.
Имеют прямой доступ к HttpContext, запросу и ответу.
• Выполняются в порядке регистрации, а обработка после вызова следующего компонента проходит в обратном порядке.

Что выбрать? Используйте middleware, если задача решается на уровне HTTP-запроса и ответа: обработка ошибок, логирование, аутентификация. Выбирайте фильтры, когда нужны детали выполнения MVC: аргументы действия, состояние модели или результат действия.

👉 @KodBlog
  • ❤ 2
  • 🍾 1
More from @kodblog
  1. Oct 4, 2026Пишете код каждый день? Помните о пяти вещах: • Сначала добейтесь, чтобы код работал. • За…
  2. Oct 4, 2026Хватит возвращать BadRequest("какая-то строка") Когда каждый эндпоинт возвращает ошибки в…
  3. Oct 3, 2026Health Checks в .NET — два вызова методов • AddHealthChecks() регистрирует необходимые сер…
  4. Oct 3, 2026Ваш API отвечает пять минут? Это уже захват заложников Пользователь смотрит на индикатор з…
  5. Oct 2, 2026Архитектура ПО — это просто?.. Объединяйте связанные концепции, и приложения станут лучше.…
  6. Oct 2, 2026Union types в C# 15 Годами разработчики C# имитировали union types — типы-объединения — че…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →