在传统的ASP.NET应用程序(使用System.Web)中,我能够缓存数据
HttpContext.Current.Items
Run Code Online (Sandbox Code Playgroud)
现在在Owin中,HttpContext不再可用.有没有办法在Owin中做类似的事情 - 一个静态方法/属性,通过它我可以设置/获取每个请求数据?
这个问题提供了一些提示,但在我的案例中并没有确切的解决方案.
我正在将 ASP.NET Web API 从 IIS 托管转换为自托管。
在其中之一中,DelegatingHandlers我根据 HTTP 标头中的令牌设置当前用户。我一直用来HttpContext.Current.Items存储这些信息,但在自托管下不可用。
存储可在应用程序中的任何位置访问的每个请求数据的正确方法是什么?
在WebApi2中,将任意对象放入其中是很常见的HttRequestMessage.Properties.通常它与扩展的方法像做request.SetUserRights()在那里SetUserRights只是将物体放入request.Properties[HttpPropertyKey.UserRights].
现在在ASP.NET 5中没有这样的属性HttpRequest.
什么样的模式应该用于传递任意对象和http请求?
在WebApi中,用于将对象放入request.Properties中,通常使用过滤器.我们仍然在AspNet5中有过滤器,所以问题可以改为:过滤器应该在哪里放置特定于请求的公共数据.此类数据的示例可以是:当前用户的角色,当前用户的语言等.