Жизненный цикл контроллера WebApi

c# oauth-2.0 authorization asp.net-web-api2 lifecycle

2813 просмотра

2 ответа

752 Репутация автора

Итак, вот сделка.

У меня есть WebApi с несколькими контроллерами. У меня есть Identity Server, настроенный на аутентификацию. Это все работает.

Когда я вызываю API и передаю соответствующий токен, если я ставлю точку останова в любое из действий контроллера, объект User заполняется правильно.

Теперь коду, который выполняет действия API, нужны данные, относящиеся к аутентифицированному пользователю. Если я попытаюсь выполнить этот код в конструкторе контроллера, мой код завершится ошибкой, потому что пользователь еще не заполнен должным образом.

Итак, на мой вопрос: есть ли какой-то элемент жизненного цикла Контроллера, который мне еще предстоит обнаружить, который позволит мне выполнять код для каждого вызова Контроллера (как это было бы в конструкторе), но где был объект User правильно заселены?

Автор: Stuart Hemming Источник Размещён: 18.07.2016 04:20

Ответы (2)


1 плюс

24040 Репутация автора

Решение

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

Автор: Kenneth Размещён: 18.07.2016 04:25

0 плюса

3342 Репутация автора

Вы можете добавить какой-нибудь токен (зашифрованный UserId / Guid) в заголовок. Вы можете использовать переменную заголовка / токен, чтобы получить объект User на стороне контроллера.

Автор: alltej Размещён: 22.07.2016 08:21
Вопросы из категории :
32x32