Accessing AspNetRequest
本文关键字:AspNetRequest Accessing | 更新日期: 2023-09-27 18:02:16
我有一个全局过滤器,它向请求添加一个令牌。项集合,后续筛选器也可以访问该集合。
我遇到的问题是在试图获得请求时。当我在一个注入类中时的项。
当尝试访问Items数组时,此注入的类使用var req = HostContext.TryGetCurrentRequest();
我的项目不再可用。我发现这是因为在过滤器中,提供的IRequest.Items
数组是AspNetRequest
对象中HttpContext.Current.Items
的克隆副本,所以我添加的任何内容都不会放在HttpContext.Current.Items
中。
因此,我的问题是,在这种情况下,我如何访问或注入当前的AspNetRequest.Items
数组,还是应该直接将我的项添加到HttpContext.Current.Items
?
请参阅https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack/Host/AspNet/AspNetRequest.cs#L53克隆。
您可以获得底层ASP。NET请求来自IRequest
,带有:
var aspReq = (HttpRequestPase)req.OriginalRequest;
var item = aspReq.Items["item"];
否则,您也可以使用HttpContext.Current.Items
单例。