HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: asp.net, фильтры ресурсов</p>
1 <p>Теги: asp.net, фильтры ресурсов</p>
2 <p><strong>Фильтры ресурсов</strong>применяются в ASP.net в целях переопределения результата действия. Это бывает полезно, к примеру, при кэшировании: в фильтре ресурсов вы можете получить кэш и сразу установить результат без повторной генерации этого результата в методах контроллера.</p>
2 <p><strong>Фильтры ресурсов</strong>применяются в ASP.net в целях переопределения результата действия. Это бывает полезно, к примеру, при кэшировании: в фильтре ресурсов вы можете получить кэш и сразу установить результат без повторной генерации этого результата в методах контроллера.</p>
3 <p>Создать фильтр ресурсов можно одним из двух способов: - реализовать интерфейс<strong>IResourceFilter</strong>; - реализовать интерфейс<strong>IAsyncResourceFilter</strong>.</p>
3 <p>Создать фильтр ресурсов можно одним из двух способов: - реализовать интерфейс<strong>IResourceFilter</strong>; - реализовать интерфейс<strong>IAsyncResourceFilter</strong>.</p>
4 <p>Давайте представим, что нам необходимо ограничить доступ к веб-сайту для старых веб-браузеров типа того же IE. Для решения поставленной задачи мы можем разработать простейший фильтр ресурсов.</p>
4 <p>Давайте представим, что нам необходимо ограничить доступ к веб-сайту для старых веб-браузеров типа того же IE. Для решения поставленной задачи мы можем разработать простейший фильтр ресурсов.</p>
5 <p>Итак, добавим в наш проект следующий класс фильтра:</p>
5 <p>Итак, добавим в наш проект следующий класс фильтра:</p>
6 <p>Интерфейс<strong>IResourceFilter</strong>предоставляет нам 2 метода:</p>
6 <p>Интерфейс<strong>IResourceFilter</strong>предоставляет нам 2 метода:</p>
7 <ol><li>OnResourceExecuting(): срабатывает непосредственно ПОСЛЕ фильтров авторизации, однако ДО выполнения метода и ДО работы фильтров действий, фильтров исключений и фильтров результатов.</li>
7 <ol><li>OnResourceExecuting(): срабатывает непосредственно ПОСЛЕ фильтров авторизации, однако ДО выполнения метода и ДО работы фильтров действий, фильтров исключений и фильтров результатов.</li>
8 <li>OnResourceExecuted(): срабатывает непосредственно ПОСЛЕ выполнения метода и фильтров действий, фильтров исключений и фильтров результатов.</li>
8 <li>OnResourceExecuted(): срабатывает непосредственно ПОСЛЕ выполнения метода и фильтров действий, фильтров исключений и фильтров результатов.</li>
9 </ol><p>В качестве параметра в эти два метода передается параметр типа<strong>ResourceExecutedContext</strong>-- он позволяет получать данные запроса, управляя ответом.</p>
9 </ol><p>В качестве параметра в эти два метода передается параметр типа<strong>ResourceExecutedContext</strong>-- он позволяет получать данные запроса, управляя ответом.</p>
10 <p>В нашем случае мы проверяем заголовок "<strong>User-Agent</strong>". Если этот заголовок содержит соответствующие веб-браузеру Internet Explorer подстроки, тогда посредством свойства<strong>Result</strong>мы переустанавливаем ответ -- на этом обработка запроса заканчивается, а метод и последующие фильтры уже не выполняются.</p>
10 <p>В нашем случае мы проверяем заголовок "<strong>User-Agent</strong>". Если этот заголовок содержит соответствующие веб-браузеру Internet Explorer подстроки, тогда посредством свойства<strong>Result</strong>мы переустанавливаем ответ -- на этом обработка запроса заканчивается, а метод и последующие фильтры уже не выполняются.</p>
11 <h2>Асинхронная версия реализации</h2>
11 <h2>Асинхронная версия реализации</h2>
12 <p>Теперь давайте посмотрим на реализацию такой же задачи, но уже посредством асинхронной версии:</p>
12 <p>Теперь давайте посмотрим на реализацию такой же задачи, но уже посредством асинхронной версии:</p>
13 <p><em>По материалам https://metanit.com/sharp/aspnet5/.</em></p>
13 <p><em>По материалам https://metanit.com/sharp/aspnet5/.</em></p>
14  
14