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

Sha*_*awn 21 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"];
Run Code Online (Sandbox Code Playgroud)

然后在app_end请求中:

     Session.Clear();
Run Code Online (Sandbox Code Playgroud)

Teu*_*n D 38

HttpContext.Items["user"] = user;
Run Code Online (Sandbox Code Playgroud)

您可以在整个请求期间引用上下文项,并在结束时进行清理.


Cha*_*ran 9

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

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