У меня есть аутентификация JWT в моем .NET Core 2.2 API.Когда пользователь создает новую сущность, мне нужно получить его информацию (имя пользователя и часовой пояс, установленные в приложении) для проверки сущности.
Дело в том, что я не хочу добавлять все этов утверждениях (также есть некоторые другие свойства) моего JWT, и он должен проходить туда-сюда и поддерживать его в актуальном состоянии, когда некоторые пользовательские предпочтения меняются.Поэтому я предпочитаю указывать только идентификатор пользователя в заявках, и после получения его запроса я могу затем запросить свою базу данных / кэш / что угодно, чтобы получить его полную информацию.
Я подумал о создании промежуточного программного обеспечения, котороеобработает запрос, чтобы получить информацию о пользователе и сделать ее доступной в качестве службы (например, UserInfo
), чтобы я мог получить ее в своем DbContext и использовать ее так же, как я могу сделать с HttpContext
:
var ctx = this.GetService<IHttpContextAccessor>().HttpContext;
(я использую DbContextPool
, поэтому я получаю такой сервис и не внедряю его).
Я не очень знаком с промежуточным ПО, нотаким образом, что мое промежуточное программное обеспечение каким-то образом сделало бы доступным UserInfo
, чтобы я мог получить его в своем DbContext
точно так же, как я могу сделать с HttpContext
?