我有一些我需要在客戶端緩存的小數據對象。這是用戶信息,如他們的名字和角色。我有HttpCacheability.Private集合。當我使用Fiddler查看頁面時,可以看到緩存是私有的,但不是爲每個用戶存儲緩存,而是當不同的用戶瀏覽到該網站時,它將顯示首先登錄的用戶的緩存值。我好像是在存儲服務器值。HttpCacheability.Private不按預期工作
例如,緩存在10分鐘內過期。緩存過期後,我去了網站。緩存爲空,因此它從數據庫中查找我的用戶信息(基於當前登錄用戶)並將其寫入緩存。現在,John Doe在我做完3分鐘後到達現場,他看到了我的信息而不是他的。
我不知道還需要做什麼來緩存每個用戶的信息在他們的客戶端,而不是服務器。任何幫助將被讚賞。
感謝,
朗達
public static void AddUserToCache(User userToCache, string Key)
{
HttpContext context = HttpContext.Current;
HttpCachePolicy cachePolicy = context.Response.Cache;
cachePolicy.SetCacheability(HttpCacheability.Private);
if (context.Cache[Key] == null)
{
context.Cache.Add(Key, userToCache, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(UIConstants.CACHETIMEOUTHOURS, 0, 0), System.Web.Caching.CacheItemPriority.Default, null);
}
}
if (Cache["User"] == null)
{
user = BusinessUtility.GetCurrentUser();
if (user != null)
{
CacheUtility.AddUserToCache(user, "User");
}
}
else
{
user = (User)Cache["User"];
}
我還應該提到,在我的代碼的原始版本中,我沒有cachepolicy的東西作爲私人應該是默認的。它不會以任何方式工作。 – Rhonda 2012-02-28 19:43:33