2016-06-24 33 views
6

Asp.net WebForms'da, oturum zaman aşımı olduğunda veya Session.Abandon() işlevini çağırdığınızda global.asax içinde Seesion_End() adında bir olay var, bu olay işleyicisi yürütülür, Asp.net Core'da benzer davranışlara ihtiyacım var, bu mümkün mü? Bunun çoğu için docs numaralı numaralı telefon numarasıSession.Abandon() asp.net Core var

+0

Ben sorunuzu rephrase gerektiğini düşünüyorum. Cevap vermek zor! – Thomas

+1

Session.Clear() öğesini denediniz mi? – Tratcher

+0

Oturum otomatik olarak zaman aşımı olduğunda olayı yakalamam gerekiyor, bu olayı yakalamak için herhangi bir neden var mı, yoksa herhangi bir etkinlik var mı? Asp.net WebForms içinde –

cevap

0

. oturum zaman aşımı böyle ayarlanır:

services.AddSession(options => 
{ 
    options.IdleTimeout = TimeSpan.FromSeconds(10); 
}); 

Ama mevcut beri çerez, çerez de bir son kullanma tarihi vardır. Yani IdleTimeout'un süresi dolarsa, oturumun süresi dolar. Çerezin süresi dolarsa, oturum geçer. Çerez silinirse, oturum silinir.

Session.Clear() numaralı telefonun aranması, oturumun içeriğini kaldırır, ancak oturumu, source'da açıklandığı gibi bozulmadan korur (aka, çerez silinmez).

+0

, oturum zaman aşımı olduğunda ya da Session.Abandon() çağrıldığında global.asax'da Seesion_End() adlı bir şey var, bu olay işleyicisi çalıştırılıyor, asp.net Core'da benzer davranışlara sahip olmalıyım, mümkün mü? –

+0

Dolayısıyla, bir oturumu programatik olarak geçersiz kılmanın bir yolu yoktur, örn. Kullanıcı bir çıkış butonu kullandığında? Boşta kalma zaman aşımını çok düşük tutmanın dışında bir oturumu geçersiz kılmanın önerilen yolu ne olurdu? Ayrıca zaman aşımı oturumunu gerçekten geçersiz kılmak için hangi değer kontrol edilebilir? Bir şekilde .net Çekirdeğindeki Oturum uygulamasının tam olarak uygulanmadığı veya burada bir şeyi kaçırdığım görülüyor. – vm370

+0

@ vm370 Yukarıda Tratcher tarafından belirtildiği gibi, bir oturumu koddan geçersiz kılmanın önerilen yolu, 'Session.Clear() 'işlevini çağırmaktır. Burada daha fazla tartışma var: [Oturum Sayı 27] (https://github.com/aspnet/Session/issues/27) – TallMcPaul

0

Sadece arayarak oturumu açarım:

HttpContext.Session.Clear();

İlgili konular