.net core 在中间件中获取用户信息并将其注入

.net core 在中间件中获取用户信息并将其注入,.net-core,asp.net-core-middleware,.net Core,Asp.net Core Middleware,我在.NETCore2.2API中有JWT身份验证。当用户创建一个新实体时,我需要获取他的信息(应用程序中设置的用户名和时区),以便审核该实体 关键是,我不想在JWT的声明(还有一些其他属性)中添加所有这些内容,让它来回传递,并在某些用户偏好发生变化时保持最新。因此,我宁愿在声明中只显示我的用户id,在收到他的请求后,我可以查询我的数据库/缓存/任何东西,以获取他的全部信息 我想做的是创建一个中间件来处理请求,以便获取用户信息并将其作为服务提供(例如,UserInfo),这样我就可以在DbCon

我在.NETCore2.2API中有JWT身份验证。当用户创建一个新实体时,我需要获取他的信息(应用程序中设置的用户名和时区),以便审核该实体

关键是,我不想在JWT的声明(还有一些其他属性)中添加所有这些内容,让它来回传递,并在某些用户偏好发生变化时保持最新。因此,我宁愿在声明中只显示我的用户id,在收到他的请求后,我可以查询我的数据库/缓存/任何东西,以获取他的全部信息

我想做的是创建一个中间件来处理请求,以便获取用户信息并将其作为服务提供(例如,
UserInfo
),这样我就可以在DbContext中获取它,并像使用
HttpContext
一样使用它:

var ctx = this.GetService<IHttpContextAccessor>().HttpContext;
var ctx=this.GetService().HttpContext;
(我使用的是
DbContextPool
,这就是为什么我得到这样的服务而不注入它)

我对中间件不太熟悉,但我的中间件是否会以某种方式提供
UserInfo
,这样我就可以在
DbContext
中获得它,就像我可以使用
HttpContext
一样