Подтвердить что ты не робот

Какова цель фильтра FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters) внутри Global.asax

Я прочитал аналогичный вопрос Какова цель RegisterGlobalFilter

но неспособный получить ответ, вопрос несколько вращается вокруг какого-то другого материала, и anwser не кажется мне полным заполнения.

Мой вопрос: - какова цель этой строки внутри global.asax в MVC 5 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

  • Почему это необходимо?
  • В чем заключается цель добавления/регистрации фильтры?
  • Что должен делать фильтр?
4b9b3361

Ответ 1

FilterConfig - это пользовательский класс в вашем коде, обычно в папке App_Start и обычно выглядит примерно так:

public class FilterConfig {
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
        filters.Add(new HandleErrorAttribute());
    }
}

Вы можете добавить пользовательские фильтры в этот список, который должен быть выполнен по каждому запросу. Если вы наследуете класс FilterAttribute или один из его наследников вы можете создавать свои собственные фильтры, например, фильтр журнала.

Вы также можете применить эти фильтры к контроллерам, требующим определенных ограничений. Например, если вы добавляете атрибут фильтра [RequireHttps] (пример ниже) к контроллеру или методу в вашем контроллере, пользователь должен использовать https для выполнения кода в методе. Поэтому вместо обработки в каждом методе фильтр позаботится об этом.

[RequireHttps]
public class MyController : ApiController {
    // only https requests will get through to this method.
    [HttpGet]
    public IHttpActionResult Get() {
       return Ok();
    }
}

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

Если вы хотите больше узнать, msdn имеет более подробную информацию о фильтрах в Фильтрация в ASP.NET MVC.