2013-04-02 29 views
4

如果我要使用AppState變量而不是Session變量,我不會以用戶特定的方式存儲數據。也就是說,如果一個用戶更改了AppState變量,則該變量對於站點上的所有用戶(它是特定於應用程序的)都保持更改。在WebMatrix用戶特定或特定於應用程序中使用緩存?

我的問題是,如果我存儲使用緩存在asp.net網頁之間傳輸數據的值,它是用戶特定的還是應用程序特定的?我一直以爲這將是用戶特定的,但是我讀了這一點:

緩存的主要目的是用來改善的 網頁的表現,你可以任意對象添加到它和檢索 它隨意。高速緩存項目存儲在服務器的內存中,並且可以被認爲是特殊的全局變量 。

(這是來自:http://www.mikesdotnetting.com/Article/192/Transferring-Data-Between-ASP.NET-Web-Pages

明知實際值存儲在服務器上,我開始懷疑,如果參考這些值存儲客戶端(如使用Session變量),或者如果他們100%存儲在服務器端。

我會自己測試一下,但我的工作環境並不適合我非常容易地在不同的機器上「跳躍」。

+0

由於沒有用戶組件,因此推測100%的服務器端(可比舊學校應用程序對象而不是會話對象) – AardVark71

+0

@ AzardVark71感謝您的回覆。我開始感到非常高興,在試圖通過asp.net網頁傳輸我的21個字符串變量以及我的9個12位索引數組之前,我問了這個問題(並且都是爲了通過OAuth請求記住表單數據: S)。 – VoidKing

回答

4

緩存不是用戶特定的。它與AppState類似,不同之處在於您可以在緩存中的項目上設置到期時間,並建立依賴關係,例如在一個文件或一個SQL Server數據庫上(儘管你不能通過System.Web.Helpers.WebCache助手完成最後一部分)。

+0

實際上,您可以通過WebCache幫助程序在緩存中的項目上設置到期時間。當您設置值(使用WebCache.Set方法:http://msdn.microsoft.com/en-us/library/system.web.helpers.webcache.set(v=vs.111).aspx)第三個可選paramater是minutesToCache(默認是20分鐘) – AardVark71

+0

@ AardVark71謝謝 - 不知道我怎麼設法忽略它。我甚至在我的書中報道過。修正了我的答案,準確性。 –

相關問題