Фильтр типа BeginRequest в MVC 3?

У меня есть код в моем приложении, который мне нужно выполнять при каждом запросе, , прежде чем что-либо еще выполнит (даже до аутентификации). До сих пор я использовал событие Application_BeginRequest в моем Global.asax, и это работало нормально. Но этот код должен попасть в базу данных, и делать это из Global.asax по какой-то причине кажется неправильным. Кроме того, nuget Ninject.MVC3, который я использую, выиграл ' t внедрять зависимости в мой HttpApplication ctor.

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

Порядок фильтров

Фильтры выполняются в следующем порядке:

  1. Фильтры авторизации
  2. Фильтры действий
  3. Фильтры ответов
  4. Фильтры исключений

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

Я знаю, что могу использовать HttpModule, но это не очень похоже на MVCish , поэтому я пытаюсь исчерпать все возможности, прежде чем идти по этому маршруту, что приводит к моему вопросу:

Есть ли эквивалент BeginRequest для глобальных фильтров действий?

14
задан Daniel Liuzzi 2 February 2011 в 20:10
поделиться