2009-07-30 15 views
138

में सत्र टाइमआउट कैसे सेट करें मैंने बहुत मेहनत की है लेकिन एएसपी.Net वेब एप्लिकेशन के लिए इन-प्रोसेस सत्र के लिए सत्र टाइमआउट मान सेट करने के तरीके पर समाधान नहीं मिल रहा है।वेब.कॉन्फिग

मैं वीएसटीएस 2008 + .NET 3.5 + C# का उपयोग कर रहा हूं। टाइमआउट को 1 मिनट होने के लिए मैंने स्वयं लिखा है, क्या यह सही है?

मैं web.config

<sessionState timeout="1" mode="InProc" /> 
+5

जिस तरह से आप को परिभाषित टाइमआउट सही है। क्या आपके पास कोई समस्या है? –

+4

हाँ, यह ठीक है .. –

+7

आप जानते हैं कि इसका मतलब है कि यह निष्क्रियता के 1 मिनट के बाद समाप्त हो जाएगा, इसकी शुरूआत से 1 मिनट बाद नहीं? मेरा अनुमान है कि यदि आप इस सवाल से पूछ रहे हैं, और टाइमआउट सही तरीके से टाइप कर चुके हैं, तो आप इस बात से गुमराह हो सकते हैं कि यह कैसे काम करता है। –

उत्तर

255

में system.web धारा के तहत लिखा है आप 20 मिनट के लिए समाप्ति सेट कुछ इस तरह उपयोग करना चाहते हैं:

<configuration> 
    <system.web> 
    <sessionState timeout="20"></sessionState> 
    </system.web> 
</configuration> 

आप सही

देखना चाहिए
+11

20 मिनट या घंटे? (टाइमआउट = "20") –

+13

कॉन्फ़िगर मिनटों में टाइमआउट बताता है, इसलिए 20 मिनट – Wolfwyrd

44

वह मान जो आप timeout विशेषता में सेट कर रहे हैं वह सत्र टाइमआउट मान सेट करने के लिए सही तरीकों में से एक है।

timeout विशेषता निर्दिष्ट करता है कि सत्र छोड़ने से पहले सत्र को निष्क्रिय किया जा सकता है। इस विशेषता के लिए डिफ़ॉल्ट मान 20.

इस विशेषता के लिए 1 का मान निर्दिष्ट करके, आपने सत्र को निष्क्रिय होने के 1 मिनट बाद त्याग दिया है।

इस परीक्षण के लिए एक सरल aspx पेज बनाते हैं, और Page_Load घटना में इस कोड लिखने,

Response.Write(Session.SessionID); 

एक ब्राउज़र खुला है और इस पृष्ठ पर जाएं। एक सत्र आईडी मुद्रित किया जाएगा। पास करने के लिए एक मिनट प्रतीक्षा करें, फिर रीफ्रेश करें दबाएं। सत्र आईडी बदल जाएगी।

अब, यदि मेरा अनुमान सही है, तो आप सत्र के समय के रूप में अपने उपयोगकर्ताओं को लॉग आउट करना चाहते हैं। इस के लिए, आप रिग ऊपर एक प्रवेश पृष्ठ जो उपयोगकर्ता प्रमाणिकता की पुष्टि करेंगे, और इस तरह एक सत्र चर बना सकते हैं करने के लिए - अब

Session["UserId"] = 1; 

, तो आप इस तरह इस चर के लिए हर पृष्ठ पर एक जाँच करने के लिए होगा -

if(Session["UserId"] == null) 
    Response.Redirect("login.aspx"); 

यह एक बेयर-हड्डियों का उदाहरण है कि यह कैसे काम करेगा।

लेकिन, अपने उत्पादन की गुणवत्ता को सुरक्षित ऐप्स बनाने के लिए, Roles & Membership एएसपी.NET द्वारा प्रदान की गई कक्षाओं का उपयोग करें। वे फॉर्म-आधारित प्रमाणीकरण प्रदान करते हैं जो सामान्य सत्र-आधारित प्रमाणीकरण का उपयोग करने की कोशिश कर रहे हैं जो अधिक विश्वसनीय है।

+0

ग्रेट सलाह ... प्रतिक्रिया। राइट (सत्र सत्र) के साथ परीक्षण करने से पहले पहले सत्र चर सेट करना सुनिश्चित करें; अन्यथा जब भी आप रीफ्रेश करते हैं तो यह एक नई आईडी के साथ ताज़ा हो जाएगा। –

1

web.config में इस का उपयोग करें:

<sessionState 
    mode="InProc" 
    stateConnectionString="tcpip=127.0.0.1:42424" 
    sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" 
    cookieless="false" 
    timeout="20" 
/> 
+30

आपको अपने द्वारा सूचीबद्ध अधिकांश विशेषताओं की आवश्यकता नहीं है, केवल 'टाइमआउट' वास्तव में। 'stateConnectionString' और' sqlConnectionString' को 'मोड = "InProc" 'पर अनदेखा किया जाता है, और' मोड' और 'cookieless' के मान उनके डिफ़ॉल्ट मानों पर सेट होते हैं। तो, यह वास्तव में वुल्फविर्ड के जवाब को दूर करता है। – arcain

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