asp.net mvc - 需要为当前请求存储一些数据

时间:2009-02-15 19:46:12

标签: asp.net-mvc

我正在编写用户身份验证类。在请求期间有很多对当前用户的引用,所以我想将它缓存在内存中而不是调用数据库ala singleton。我正在考虑使用会话并在每个请求结束时清除它。

像:

 public static User Current() {
     if (Session["current-user"] == null) {
          Session["current-user"] = GetUserFromDB(); // example function, not real
     }
     return (User)Session["current-user"];

然后在app_end请求中:

     Session.Clear();

2 个答案:

答案 0 :(得分:35)

HttpContext.Items["user"] = user;

您可以在整个请求期间引用上下文项,并在结束时清除它。

答案 1 :(得分:7)

使用HttpContext课程。您可以在HttpContext.Current的控制器的上下文中找到它。

HttpContext.Items集合是您想要使用的。