2012-02-06 13 views
9

मैं वर्तमान में अपने अपने सत्र प्रदाता को कार्यान्वित कर रहा हूं, और यह जानना चाहूंगा कि सत्र प्रदाता में 20 मिनट का डिफ़ॉल्ट सेट है या नहीं, यदि कॉन्फ़िगरेशन फ़ाइल में कोई प्रविष्टि मौजूद नहीं है, या यदि मेरा सत्र प्रदाता प्राप्त करना है यह एक और जगह से।कॉन्फ़िगरेशन में सेट नहीं होने पर सत्र प्रदाता में सत्र टाइमआउट मान कैसे प्राप्त करें?

+0

आप अपने खुद के सत्र प्रदाता को लागू कर रहे हैं, तो आप पर विचार करना चाहिए आप विन्यास फाइल में देखने के लिए अगर वहाँ डिफ़ॉल्ट प्रदाता के लिए किसी भी सेटिंग कर रहे हैं देखने के लिए है। हालांकि आपको अपने कार्यान्वयन के लिए समय-समय पर पता लगाने के लिए अपने स्वयं के कॉन्फ़िगरेशन (सत्र प्रदाता के लिए) देखना चाहिए। – Peter

+0

मैंने इसे माना, लेकिन जानना चाहते हैं कि 20 मिनट डिफ़ॉल्ट सत्र प्रदाता में कार्यान्वयन विवरण है, या यदि यह कहीं और उपलब्ध है। –

उत्तर

15

मुझे वैश्विक कॉन्फ़िगरेशन फ़ाइल में मान नहीं मिला, लेकिन इसे कहीं परिभाषित किया गया है।

निम्न कोड का उपयोग करके आप सत्र टाइमआउट मान प्राप्त कर सकते हैं चाहे वह आपके स्थानीय web.config में परिभाषित किया गया हो या नहीं।

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

लेख मैंने ऊपर लिंक करने के बाद के मुताबिक, अगर समय समाप्त मूल्य कहीं भी सेट नहीं है, 20 मिनट की एक डिफ़ॉल्ट इस्तेमाल किया जाएगा। यह कस्टम प्रदाताओं और अंतर्निर्मित दोनों के लिए मामला प्रतीत होता है।

+0

मैंने इसे भी पढ़ा, लेकिन मुझे वर्तमान टाइमआउट मान की आवश्यकता है, और 'HttpContext.Session' 'null' है। –

+0

http://stackoverflow.com/questions/1382791/asp-net-what-to-do-if-current-session-is-null अगर httpcontext.session शून्य है तो सत्र ऑब्जेक्ट शुरू नहीं किया जा रहा है और वहां है कोई टाइमआउट नहीं और कोई अन्य सत्र संबंधित जानकारी नहीं है। –

+0

मुझे यकीन है कि यह ** ** प्रदाता को कॉल करने के बाद ** बनाया गया है। –

0

तुम बस Session.Timeout उपयोग कर सकते हैं मूल्य

+0

'HttpContext.Session' 'null' है। –

0

Global.asax में प्राप्त करने के लिए, आप session_start में

Session.TimeOut

सेट या अन्य स्थान में सेट कर सकते हैं कोड में

+0

सवाल मूल्य प्राप्त करने के बारे में है, और 'HttpContext.Session' शून्य है। –

+0

क्या आपने HttpContext.Current.Session का उपयोग करने का प्रयास किया था? – antar

+0

मुझे वास्तव में एक तत्काल 'HttpContext' था जो वर्तमान संदर्भ का प्रतिनिधित्व करता था। 'HttpContext.Current.Session' इसलिए भी' शून्य 'है। –

6

उपयोग करके देखें:

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

जब आपके पास वर्तमान सत्र शुरू नहीं होता है तो यह शून्य संदर्भ अपवाद फेंक देगा (उदा। ऐप शुरू होने के दौरान) –

संबंधित मुद्दे