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克隆。

Accessing AspNetRequest

您可以获得底层ASP。NET请求来自IRequest,带有:

var aspReq = (HttpRequestPase)req.OriginalRequest;
var item = aspReq.Items["item"];

否则,您也可以使用HttpContext.Current.Items单例。

相关文章: