Bunu işlemek için herhangi bir çerçeve sınıfı olup olmadığından emin değilim, ancak her istek için IIS sunucusunda oluşturulan oturumlara gerçekten dönmeniz gerekiyorsa, her bir oturumu kendi koleksiyon nesnesinde saklayamazsınız. kodunuzdan erişim Örneğin, global.asax dosyasında, belirli bir oturumu Listenize kaydetmek için kendi kodunuzu Session_Start etkinliğine ekleyebilirsiniz. Seansın Session.IsNewSession özelliği ile yapılabilen yeni bir oturum olup olmadığını kontrol etmeniz gerekir. Yeni bir oturum oluşturulduğunda, Global.asax'daki Session_Start olayı tetiklenir.
Ama zaman aşımı veya son ne zaman Listesinden oturumları kaldırmak yoksa sorunlar olabilir, bu nedenle nasıl bunu hakkında gidebilir geçerli:
session_start durumunda
, bu kontrol edin. Session.IsNewSession boolean değeri
Session.IsNewSession öğesi doğruysa, geçerli oturumu alın (this.Session'ı kullanarak, Global.asax geçerli yeni oturumu içeriğinde bulunduğundan) ve anahtar ile bir Dictionary nesnesine kaydedin. Session.SessionId olarak.
Bu, sunucuda oluşturulan her Oturum için benzersiz bir anahtar çifti koleksiyonu oluşturacaktır. Session_End durumunda
- sona erdi biridir akım Oturum (this.Session) ait Session.SessionID özelliği olsun.
Oturumları içeren Sözlük'te anahtar değer çiftini kaldırmak için bitmiş Oturum değerinin Session.SessionID değerini kullanın. Bu altyapı mevcuttur ve sözlük nesne uygulama kodunuz tarafından erişilebilir bir yerde oturuyor kez
, bu sözlüğü almak ve en Server aktif Oturumlar taşıması için yineleyebilirsiniz zaman içinde.
Cevabın "Evet" olduğunu varsayalım. Bundan sonra ne ihtiyacın var? Sorunuz eksik. arasında –
duplikat [soru 1] (http://stackoverflow.com/questions/1470334/list-all-active-asp-net-sessions) ya da [soru 2] (http://stackoverflow.com/questions/8854176/get-a-listesi-of-all-aktif-oturumları-in asp-net). – Candide
http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx – Tariqulazam