пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Использование фильтров. Фильтры авторизации. Фильтры исключений. Фильтры действий и результатов. Глобальные фильтры.

Фильтры реализованы как атрибуты, благодаря чему позволяют уменьшить объем кода в контроллере. Данные атрибуты могут применяться как ко всему классу, так и к отдельным его методам, свойствам и полям. Например, если у нас есть некоторый контроллер HomeController, и мы хотим, чтобы к нему имели доступ только авторизованные пользователи. В этом случае мы можем использовать следующий атрибут:

[Authorize]

public class HomeController : Controller

{     //................................}

Атрибут [Authorize] в данном случае как раз и будет задействовать фильтр авторизации. Если бы мы не применили данный фильтр, то нам бы пришлось вручную писать логику проверки, авторизован ли пользователь или нет.

Применение фильтров

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

Но, как уже выше говорилось, мы можем применить фильтр на уровне отдельного метода:

 

public class HomeController : Controller

{       [Authorize]

    public ActionResult Index()

    {        ViewBag.Message = "Привет мир!"; 

        return View();    }}

В MVC 5 имеется несколько типов фильтров:

Тип фильтров

Реализуемый интерфейс

Стандартная реализация

Описание

Фильтры аутентификации

IAuthenticationFilter

Отсутствует

Фильтр, определяющий, аутентифицирован ли клиент. Данный фильтр запускается до выполнения любого другого фильтра или метода действий

Фильтры авторизации

IAuthorizationFilter

AuthorizeAttribute

Фильтр, определяющий, имеет ли пользователь доступ к данному ресурсу. Данный фильтр запускается после фильтра аутентификации, но до любого другого фильтра или метода действия

Фильтры действий

IActionFilter

ActionFilterAttribute

Фильтр, применяемый к действиям. Может запускаеться как до, так и после выполнения метода действий

Фильтры результатов действий

IResultFilter

ActionFilterAttribute

Фильтр, применяемый к результатам действий. Может запускаться как до, так и после выполнения результата действия

Фильтры исключений

IExceptionFilter

HandleErrorAttribute

Атрибут для обработки исключений, выбрасываемых методом действий и результатом действий

При вызове метода действий фреймворк MVC сначала смотрит, применяются ли к данному действию какие-либо атрибуты, и если применяются, то в начале отрабатывают данные атрибуты.

 

 

 

 

 


12.01.2019; 19:55
хиты: 136
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь