您保留在會話中的數據將可用於當前會話的任何請求,直到會話過期。
會話並不總是不好。有一些有效的用例可以在會話中存儲一些數據,前提是您不使用內存會話。 使用內存中會話不好。您應該使用小型數據庫表來存儲您希望保留在會話中的數據(例如:購物車數據等。),或者如果您確實想要會話(爲什麼?),則應使用StateServer或SqlServer會話模式
如果您不希望保留應用程序的本地數據庫來存儲此信息,您還可以考慮將其保留在緩存層而不是會話中。您可以使用點網中提供的MemoryCache
類。
將數據設置到緩存的快速示例。
ObjectCache cache = MemoryCache.Default;
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTime.Now.AddDays(1);
var products = new List<string> { "iPhone","MacBookPro","Beer"};
var userId=25;
var cacheKey="productsOf"+userId;
cache.Set(cacheKey, products, policy);
並從緩存中讀取,
var userId=25;
var cacheKey="productsOf"+userId;
var test= cache.Get(cacheKey);
Get
方法返回一個對象,你需要明確它投射到您的自定義類/數據structuer。您可以將任何對象保留在緩存中。根據您的具體要求更新緩存的到期日期。 MemoryCache
類可用於System.Runtime.Caching
命名空間。
與內存中會話類似,緩存將被自動清除。所以你最好的選擇是使用一個小的本地數據庫表,我猜。
每個會話都有一個會話ID ... – mason