2012-02-06 23 views
9
Şu anda benim kendi oturumu sağlayıcı uygulayan ediyorum ve yapılandırma dosyasında bir girdi var yoksa 20 dakika varsayılan oturum sağlayıcısına ayarlanır olmadığını bilmek istiyorum

, ya da benim oturumu sağlayıcı almak gerekiyordu eğer başka bir yerden. Zaman aşımı değeri her yerde ayarlı değilseYapılandırmada ayarlanmadığında oturum sağlayıcısında oturum zaman aşımı değeri nasıl alınır?

+0

. Ancak, uygulamanızın zaman aşımını öğrenmek için kendi yapılandırmanıza (oturum sağlayıcınız için) bakmalısınız. – Peter

+0

Bunu kabul ama 20 dakika varsayılan oturum sağlayıcısı bir uygulama ayrıntı olup olmadığını bilmek istiyorum, yoksa başka bir yerde kullanılabilir olup olmadığını. –

cevap

15

ben küresel bir yapılandırma dosyasında değerini bulamadı ama bir yere tanımlı.

bunu yerel web.config tanımlanır olsun veya olmasın oturum zaman aşımı değerini elde Aşağıdaki kodu açabilir.

Configuration conf = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath); 
SessionStateSection section = (SessionStateSection) conf.GetSection("system.web/sessionState"); 
int timeout = (int) section.Timeout.TotalMinutes; 
0

http://msdn.microsoft.com/en-us/library/aa478952.aspx

Yukarıda bağladıktan makaleye göre, 20 dakikalık bir varsayılan kullanılacaktır. Bu hem özel sağlayıcılar hem de yerleşik için geçerli gibi görünüyor. Sadece değerini Global.asax içinde

+0

HttpContext.Session' 'null' olan' Ben de okudum, ama şimdiki zaman aşımı değerini gerekir ve. –

+0

http://stackoverflow.com/questions/1382791/asp-net-what-to-do-if-current-session-is-null httpcontext.session boşsa oturum nesnesi başlatılmamışsa ve zaman aşımı yok ve oturumla ilgili başka bilgi yok. –

+0

Eminim, oturum sağlayıcısını aradıktan sonra ** oluşturulduktan eminim. –

0

, session_start içinde

Session.TimeOut

ayarlamak veya başka yerde ayarlayabilirsiniz kodda.

+0

'HttpContext.Session'' null'. –

0

almak için Session.TimeOut kullanabilirsiniz

+0

Soru, değeri almakla ilgilidir ve 'HttpContext.Session 'boş. –

+0

HttpContext.Current.Session'ı kullanmayı denediniz mi? – antar

+0

Aslında bir örneği olan 'HttpContext' akım bağlamı temsil hangi. 'HttpContext.Current.Session' bu nedenle de 'null'. –

6

kullanmayı deneyin: Kendi oturum sağlayıcı uyguladıklarını varsa, varsayılan sağlayıcı için herhangi bir ayar olup olmadığını görmek için yapılandırma dosyasında bakmak zorunda olduğunu düşünmelisiniz

System.Int64 timeout = System.Web.HttpContext.Current.Session.Timeout; // The time-out period, in minutes 
+0

, geçerli bir Oturum başlatılmadığında (ör. Uygulama başlangıcı sırasında) boş referans istisnası atar. –

İlgili konular