प्रपत्र प्रमाणीकरण टाइमआउट बनाम सेशनस्ट्रेट टाइमआउट


139

मेरे पास कोड है जो मैं वेबसाइट के सत्र समय बहिष्कार के बारे में देख रहा हूं। Web.config में मैं इस कोड के पार आया था।

 <authentication mode="Forms">
  <forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>

<sessionState timeout="30" />

क्या किसी को पता है कि एक दूसरे पर मिसाल लेता है, और वे कैसे अलग हैं। धन्यवाद।


जवाबों:


226

वे अलग चीजें हैं। प्रपत्र प्रमाणीकरण समयबाह्य मान मिनटों में समय की मात्रा सेट करता है जो प्रमाणीकरण कुकी के लिए मान्य है, जिसका अर्थ है, कि valueमिनटों की संख्या के बाद , कुकी समाप्त हो जाएगी और उपयोगकर्ता को अब प्रमाणित नहीं किया जाएगा - वे लॉगिन पर रीडायरेक्ट हो जाएंगे पृष्ठ स्वचालित रूप से slidingExpiration=trueमूल्य मूल रूप से कह रहा है कि जब तक उपयोगकर्ता टाइमआउट मान भीतर एक अनुरोध करता है के रूप में, वे प्रमाणीकृत करने (अधिक जानकारी के लिए जारी रहेगा यहाँ )। यदि आप slidingExpiration=falseप्रमाणीकरण सेट करते हैं तो कुकी valueमिनट की संख्या के बाद समाप्त हो जाएगी , भले ही उपयोगकर्ता टाइमआउट मान के भीतर अनुरोध करता है या नहीं।

SessionStateटाइमआउट मान सेट एक विशेष सत्र के लिए समय की राशि एक सत्र स्थिति प्रदाता स्मृति में पकड़ डेटा के लिए आवश्यक है (या जो भी समर्थन की दुकान इस्तेमाल किया जा रहा है, एसक्यूएल सर्वर, OutOfProc, आदि)। उदाहरण के लिए, यदि आप अपने उदाहरण में मूल्य का उपयोग करके सत्र में कोई वस्तु रखते हैं, तो यह डेटा 30 मिनट के बाद हटा दिया जाएगा। उपयोगकर्ता अभी भी प्रमाणित हो सकता है लेकिन सत्र में डेटा अब मौजूद नहीं हो सकता है। Session Timeoutमूल्य हमेशा हर अनुरोध के बाद रीसेट है।


26
एक स्पष्टीकरण: प्रपत्र प्रमाणीकरण टाइमआउट टिकट के लिए जरूरी नहीं कि टिकट के लिए समाप्ति समय निर्धारित करता है जहां टिकट संग्रहीत किया जा सकता है। कुकी का समय समाप्त होने का समय नहीं हो सकता है (जिसे सत्र कुकी कहा जाता है, जिसका अर्थ है कि यह तब तक रहता है जब तक कि उपयोगकर्ता ब्राउज़र को बंद नहीं कर देता), या हो सकता है कि कुकी बिल्कुल भी न हो ("कुकीलेस" प्रपत्र प्रमाणीकरण)। एक स्थायी कुकी के मामले में, प्रपत्र प्रमाणीकरण कुकी समाप्ति और टिकट समाप्ति की समय सीमा निर्धारित करता है।
बीएमओ

13
MSDN से एक और स्पष्टीकरण: "समझौता किए गए प्रदर्शन को रोकने के लिए, और कुकी चेतावनी देने वाले उपयोगकर्ताओं के लिए कई ब्राउज़र चेतावनियों से बचने के लिए, कुकी को अपडेट किया जाता है जब निर्दिष्ट समय के आधे से अधिक बीत चुका होता है।" तो कुकी टाइमआउट केवल तभी रीसेट हो जाता है जब वह आधा हो जाता है। इसलिए इसे सत्र के समय में 2x पर सेट करने का सुझाव।
user917170

21

स्लाइडिंग एक्सप्रेशन = वास्तविक मूल्य मूल रूप से कह रहा है कि किए गए प्रत्येक अनुरोध के बाद, टाइमर रीसेट हो जाता है और जब तक उपयोगकर्ता टाइमआउट मूल्य के भीतर अनुरोध करता है, तब तक वह प्रमाणित होता रहेगा।

यह सही नहीं है। प्रमाणीकरण कुकी टाइमआउट केवल तभी रीसेट किया जाएगा जब टाइमआउट का आधा समय बीत चुका हो।

उदाहरण के लिए देखें https://support.microsoft.com/de-ch/kb/910439/en-us या https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-time-vs-session -समय समाप्त/


18

जो मैं समझता हूं कि वे एक दूसरे से स्वतंत्र हैं। प्रमाणीकरण समयावधि से कम या अधिक समय के सत्र को रखकर, आप यह सुनिश्चित कर सकते हैं कि प्रमाणीकरण समाप्त हो जाने के बाद कोई भी उपयोगकर्ता-विशिष्ट सत्र चर कायम नहीं है (यदि यह आपकी चिंता है, जो मुझे लगता है कि यह पूछने पर सामान्य है सवाल)। बेशक, आपको लॉग-आउट पर सत्र चर के निपटान को मैन्युअल रूप से संभालना होगा।

यहां एक सभ्य प्रतिक्रिया है जो आपके प्रश्न का उत्तर दे सकती है या कम से कम आपको सही दिशा में इंगित कर सकती है:


7

अंतर यह है कि एक (फॉर्म टाइमआउट) को उपयोगकर्ता को प्रमाणित करने के साथ करना पड़ता है और दूसरे (सत्र टाइमआउट) को सर्वर पर कितने समय तक कैश्ड डेटा संग्रहीत किया जाता है। इसलिए वे बहुत स्वतंत्र चीजें हैं, इसलिए एक दूसरे पर पूर्वता नहीं बरती जाती है।


5
      <sessionState timeout="2" />
      <authentication mode="Forms">
          <forms name="userLogin" path="/" timeout="60" loginUrl="Login.aspx" slidingExpiration="true"/>
      </authentication>

यह कॉन्फ़िगरेशन मुझे हर दो मिनट में लॉगिन पेज पर भेजता है, जो पहले के जवाबों के विपरीत लगता है


1
यदि सत्र संबंधी चर में लॉगिन संबंधित जानकारी संग्रहीत की जाती है और जब वह साफ़ हो जाती है, तो यह लॉगिन पर पुनर्निर्देशित करता है। तो यह कोड पर निर्भर करता है?
स्टीव

0

इस प्रश्न के पार ठोकर खाने वाले किसी भी व्यक्ति के लिए MS से इस दस्तावेज का संदर्भ लें - यह वास्तव में FormsAuthentication टाइमआउट सेटिंग के बारे में अच्छा विवरण है।

यह डॉक टिप्पणी के बारे में विस्तार से बताता है कि स्वीकार किए गए उत्तर में बना रहा है - लगातार कुकी (सत्र समाप्ति) के बारे में

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/forms-authentication-configuration-and-advanced-topics-cs#specifying-the-tickets- टाइमआउट-मूल्य

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.