【问题标题】:How to store global per request data in a .NET Web API project如何在 .NET Web API 项目中存储全局每个请求数据
【发布时间】:2013-09-09 01:49:25
【问题描述】:

我正在为我目前使用 ASP.NET Web 窗体编写的应用程序编写一个 Web api。我有一个模块,它在请求开始时获取一些数据并将其存储在 HttpContext.Current.Items 中,以便稍后在页面处理期间可用于所有代码。

我正在尝试编写我的 web api,它需要做同样的事情。存储在处理 Web api 控制器期间使用的“每个请求”全局数据的正确方法是什么(我怀疑它对于常规控制器也是一样的)。

另外,如果有办法这样做,有没有办法在控制器被实例化之前运行的 IHttpModule 中设置这些数据。

感谢任何帮助!

【问题讨论】:

  • 你可以使用 Session["Variable"] 吗?

标签: asp.net-mvc webforms asp.net-web-api ihttpmodule


【解决方案1】:

您可以按照this StackOverflow question 使用HttpRequestMessage.Properties 字典。

还有其他选项,例如 HttpContext 或 Session,但它们不能在自托管设置中使用,只能在 WebHosting 模式下使用。

【讨论】:

  • 一旦执行离开 Http 上下文,这不会崩溃吗?例如,如果您的控制器将逻辑委托给域,您不会失去对 HttpRequestMessage 的访问权限吗?因此,如果我需要该值进行日志记录,它将不可用。
猜你喜欢
  • 2020-05-01
  • 2021-10-11
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
相关资源
最近更新 更多