2012-11-30 10 views
29

Bir ObjectCache kullanabilir ve böylece bir öğe eklerseniz:.NET Önbelleğe Alma Süresi, Kayan Süre Sonu nasıl çalışır?

ObjectCache cache = MemoryCache.Default; 
string o = "mydata"; 
cache.Add("mykey", o, DateTime.Now.AddDays(1)); 

Ben nesne 1 gün içinde sona erecek anlıyoruz. Nesne 1/2 erişildiğinde Ama eğer bir gün sonra kullanarak:

object mystuff = cache["mykey"]; 

anahtar "MyKey" ile girişin yana, son erişim 1 gün şimdi, ya da öyle bu sayacı sıfırlamak mı hala 1/Son kullanma tarihine 2 gün kaldı mı?

Cevabınız hayırsa ve bunu yapmanın bir yolu varsa bunu bilmek isterim.

Teşekkürler.

CacheItemPolicy.AbsoluteExpiration zaman kodların belirli bir girdiyi dolacaktır:

cevap

62

önbellek politikaları iki tür kullanabilirsiniz vardır. Belirli bir süre içinde erişilmemişse, girdinin kullanım süresi sona erecek

CacheItemPolicy.SlidingExpiration.

Kullandığınız ObjectCache Add() numaralı aşırı yükleme, mutlak bir son kullanma tarihi olarak kabul edilir; bu, kaç kez eriştiğinizden bağımsız olarak, 1 gün sonra sona ereceği anlamına gelir. Diğer overloads'dan birini kullanmanız gerekir. İşte (bu biraz daha karışık) bir sürgülü son kullanım tarihi belirlemeli bütçeyi nasıl:

CacheItem item = cache.GetCacheItem("item"); 

if (item == null) { 

    CacheItemPolicy policy = new CacheItemPolicy { 
     SlidingExpiration = TimeSpan.FromDays(1) 
    } 

    item = new CacheItem("item", someData); 

    cache.Set(item, policy); 
} 

İstediğiniz uygun önbellek zaman TimeSpan değiştirin.

+2

Mükemmel cevaplar! Teşekkürler bayım. – Kelly

-3

SlidingExpiration özellik değeri, yapılandırma öğesinin slidingExpiration özelliği kullanılarak ayarlanır. Kayan süre sonu, bir istek yapıldıysa ve zaman aşımı aralığının yarısından fazlası geçtiyse geçerli bir kimlik doğrulama çerezi için son kullanma süresini sıfırlar. Çerezin süresi dolduğunda, kullanıcının yeniden kimlik doğrulaması yapması gerekir. SlidingExpiration özelliğinin false değerine ayarlanması, yapılandırılmış zaman aşımı değerine bağlı olarak bir kimlik doğrulama tanımlama bilgisinin geçerli olduğu süreyi sınırlandırarak bir uygulamanın güvenliğini artırabilir. Eğer requireSSL öğesini false olarak yapılandırırsanız, bir biletin geçerli olduğu süreyi azaltmak için slidingExpiration öğesini false olarak da yapılandırmanızı öneririz.

+0

Soru, bellek önbelleği çerezleri hakkındaydı – nsimeonov

İlgili konular