2009-02-28 9 views
7

मैं एक एएसपीनेट ऐप लिख रहा हूं जिसने ऑब्जेक्ट को कैश में संग्रहीत किया है। जब पृष्ठ पहली बार लोड होता है, तो यह ऑब्जेक्ट के लिए कैश की जांच करता है, यदि यह वहां है, तो यह ऑब्जेक्ट का उपयोग करेगा। यदि ऑब्जेक्ट मौजूद नहीं है, तो यह इसे फिर से बनाएगा और इसे कैश में संग्रहीत करेगा। चूंकि एकाधिक उपयोगकर्ता एक ही समय में इस ऐप का उपयोग कर सकते हैं, इसलिए मैं ऑब्जेक्ट को कैश कुंजी को सत्र आईडी के साथ कैश में स्टोर करने का प्रयास कर रहा था। खैर, मैंने देखा कि जब पृष्ठ वापस पोस्ट करता है, सत्र आईडी बदलता है, इसलिए मुझे एक अलग अनूठी कुंजी का उपयोग करने की आवश्यकता होगी। कोई सुझाव? मैं लॉग इन व्यक्ति के उपयोगकर्ता आईडी का उपयोग करने के बारे में सोच रहा था, लेकिन यह अद्वितीय नहीं है, क्योंकि आप एक ही आईडी के साथ कई बार लॉगिन कर सकते हैं।एएसपीनेट सत्र आईडी पोस्टबैक पर बदल रहा है?

उत्तर

0

सत्र आईडी पोस्टबैक पर नहीं बदला जाना चाहिए। यह एएसपीनेट द्वारा इसी तरह की चीज करने के लिए प्रयोग किया जाता है। क्या आप परिदृश्य पर अधिक जानकारी प्रदान कर सकते हैं? डेटा, क्यों/आप जब कोशिश कर रहे हैं करने के लिए "कैश"

अद्यतन 1 किस प्रकार: इसे बदलने प्रत्येक वापस पोस्ट पर के बारे में, आप कुकी अक्षम कर रखी? एएसपीनेट का कौन सा संस्करण आप उपयोग कर रहे हैं?

10

मुझे लगता है कि मैं सिर्फ MSDN से मेरा उत्तर मिल गया (इस 2.0,3.5 में परिवर्तन होता है):

"कुकी-आधारित सत्र स्थिति का उपयोग करते समय, ASP.NET सत्र तक सत्र डेटा के लिए भंडारण आवंटित नहीं करता है ऑब्जेक्ट का उपयोग किया जाता है। नतीजतन, सत्र ऑब्जेक्ट तक पहुंचने तक प्रत्येक पृष्ठ अनुरोध के लिए एक नई सत्र आईडी उत्पन्न होती है। यदि आपके एप्लिकेशन को पूरे सत्र के लिए एक स्थिर सत्र आईडी की आवश्यकता होती है, तो आप या तो एप्लिकेशन के ग्लोबल में सत्र_स्टार्ट विधि को कार्यान्वित कर सकते हैं। सत्र आईडी को ठीक करने के लिए सत्र ऑब्जेक्ट में एएसएक्स फ़ाइल और स्टोर डेटा, या आप सत्र ऑब्जेक्ट में डेटा को स्पष्ट रूप से संग्रहीत करने के लिए अपने एप्लिकेशन के किसी अन्य भाग में कोड का उपयोग कर सकते हैं। "

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx

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