2017-07-03 62 views
0

只是想檢查一下。我有以下代碼:將數據表存儲在緩存中,所有用戶都看到了嗎?

if (HttpContext.Current.Cache["DataTable"] == null) 
{ 
    Cache.Insert("DataTable", DtMaster, null, DateTime.Now.AddMinutes(2), 
      System.Web.Caching.Cache.NoSlidingExpiration); 
} 

說,在用戶A登錄並創建包含3行的數據表,如果用戶B,然後登錄到一個完全機器將他們也看到3行?

我想我問問存儲在緩存中的項目是否可用於所有用戶?

謝謝。

+2

https://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache(v=vs.110).aspx - 特別是*每個應用程序域有一個Cache類的實例。因此,Cache屬性返回的Cache對象是應用程序域中所有請求的Cache對象。*。如果要隔離用戶之間的數據,則應該使用會話。 – Rob

+1

是的。 'HttpContext.Cache'是全局的並且跨請求共享,與'Session'不同。另外,將整個DataTable存儲在緩存中(每個用戶)聽起來不是一個好主意,不管存儲如何 – haim770

回答

1

是的。

每個應用程序域有一個Cache類的實例。作爲 結果,Cache屬性返回的Cache對象是應用程序域中所有請求的緩存對象 。

HttpContext.Cache

0

是。 這將適用於多用戶的,請不要忘記重置緩存的情況下,如果有任何更改發生在與此數據表記錄相關的數據庫中。