当我将中间件注册为请求管道的一部分时,如何通过中间件链传递数据。 (最终可在 MVC 控制器操作中访问)
例如,我已经实现了自定义中间件来对我的请求进行身份验证,但是如何将身份验证数据(例如身份验证结果和附加数据)沿着中间件链传递 - 最终希望从 MVC 控制器操作访问数据,以及自定义 MVC 操作过滤器,用于根据身份验证结果限制访问。
是否有任何地方可以根据每个请求存储自定义数据,并稍后在请求链中访问它?
您可以使用HttpContext.Items
用于在请求的生命周期内存储数据的集合。它的主要用例是在组件(例如中间件和控制器)之间传递数据。添加和读取项目很容易:
Write:
context.Items["AuthData"] = authData;
Read:
var authData = (AuthData)context.Items["AuthData"];
See the ASP.NET 文档 https://docs.asp.net/en/latest/fundamentals/app-state.html#httpcontext-items了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)