Фильтры ресурсов в ASP.net | OTUS

Фильтры ресурсов в ASP.net

Фильтры ресурсов применяются в ASP.net в целях переопределения результата действия. Это бывает полезно, к примеру, при кэшировании: в фильтре ресурсов вы можете получить кэш и сразу установить результат без повторной генерации этого результата в методах контроллера.

Создать фильтр ресурсов можно одним из двух способов: - реализовать интерфейс IResourceFilter; - реализовать интерфейс IAsyncResourceFilter.

Давайте представим, что нам необходимо ограничить доступ к веб-сайту для старых веб-браузеров типа того же IE. Для решения поставленной задачи мы можем разработать простейший фильтр ресурсов.

Итак, добавим в наш проект следующий класс фильтра:

1-1801-b1b309.png

Интерфейс IResourceFilter предоставляет нам 2 метода:

  1. OnResourceExecuting(): срабатывает непосредственно ПОСЛЕ фильтров авторизации, однако ДО выполнения метода и ДО работы фильтров действий, фильтров исключений и фильтров результатов.
  2. OnResourceExecuted(): срабатывает непосредственно ПОСЛЕ выполнения метода и фильтров действий, фильтров исключений и фильтров результатов.

В качестве параметра в эти два метода передается параметр типа ResourceExecutedContext -- он позволяет получать данные запроса, управляя ответом.

В нашем случае мы проверяем заголовок "User-Agent". Если этот заголовок содержит соответствующие веб-браузеру Internet Explorer подстроки, тогда посредством свойства Result мы переустанавливаем ответ -- на этом обработка запроса заканчивается, а метод и последующие фильтры уже не выполняются.

Асинхронная версия реализации

Теперь давайте посмотрим на реализацию такой же задачи, но уже посредством асинхронной версии:

2-1801-95a414.png

По материалам https://metanit.com/sharp/aspnet5/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто