Я пытаюсь реализовать IAuthenticationFilter (Web Api 2 аромат, не вкус MVC), и я борюсь с порядком выполнения кода. Я бы ожидал, что фильтр проверки подлинности будет запущен перед любыми материалами на основе контроллера, чтобы я мог установить соответствующий основной компонент, а затем загрузить соответствующие данные пользователя из моего DbContext в какой-то базовый ApiController.Как запустить код в ApiController после AuthenticationFilter, перед действием?
Это поток, я после того, как:
AuthenticationFilter ==> BaseController ==> Controller/Action
AuthenticationFilter: - заголовок Test авторизации и установить основную, если все хорошо.
BaseController: - Использование принципала найти полную запись пользователя в базе данных и присвоить его
protected
собственности.контроллер/действие: - Полное действие в нормальном режиме, имеет доступ к записи пользователя как установлено в BaseController.
Я не уверен, куда поместить код в BaseController для того, чтобы он выполнить после фильтра аутентификации, но перед тем разрешенного контроллера/действия.
Вопрос
Так что мой вопрос два раза: Я буду об этом неправильно? Если нет, как мне выполнить шаг 2?
Получить полную запись пользователя в действии, как обычно, с помощью принципала, установленного в 'AuthenticationFilter'. Вы можете получить его в защищенном методе, который действие вызывает раньше, когда вызывается. – Nkosi
Можете ли вы показать какой-то код, чтобы привести пример «BaseController» и использовать его в Controller/action – Nkosi
@Nkosi спасибо, это определенно сработает, но я надеюсь избежать необходимости делать это в каждом действии. –