2009-02-15 28 views
18

我在寫一個用戶認證類。在請求期間有很多對當前用戶的引用,所以我想將它緩存在內存中,而不是調用數據庫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(); 

回答

31
HttpContext.Items["user"] = user; 

您可以在整個請求過程中引用上下文項,並在結束時清理它。

+0

鑑於這是ViewContext.HttpContext.Items – Spikolynn 2016-03-25 09:56:11

6

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