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

问题描述:

我在写一个用户认证类。在请求期间有很多对当前用户的引用,所以我想将它缓存在内存中,而不是调用数据库ala单例。我正在考虑在每次请求结束时使用会话并清除它。asp.net mvc - 需要为当前请求存储一些数据

,如:

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(); 

HttpContext.Items["user"] = user; 

您可以在整个请求过程中引用上下文项,并在结束时清理它。

+0

鉴于这是ViewContext.HttpContext.Items – Spikolynn 2016-03-25 09:56:11

使用HttpContext类。您可以在HttpContext.Current的控制器上下文中找到它。您可以使用HttpContext.Items集合。