War*_*ick 14 c# middleware asp.net-core
当我将中间件注册为请求管道的一部分时,如何通过中间件链传递数据.(最终可在MVC控制器操作中访问)
例如,我已经实现了自定义中间件来验证我的请求,但是如何在中间件链中传递身份验证数据(例如身份验证和其他数据的结果) - 最终希望从MVC控制器操作中访问数据,以及用于根据身份验证结果限制访问的自定义MVC操作过滤器.
有没有我可以在每个请求的基础上存储自定义数据,并在以后的请求链中访问它?
Hen*_*ema 19
您可以使用该HttpContext.Items集合存储请求生命周期内的数据.它的主要用例是围绕组件传递数据(例如中间件和控制器).添加和阅读项目很简单:
写:
context.Items["AuthData"] = authData;
Run Code Online (Sandbox Code Playgroud)
读:
var authData = (AuthData)context.Items["AuthData"];
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅ASP.NET文档.