में प्रमाणीकरण के साथ आउटपुट कैश दुविधा, मैं एक एएसपी.नेट एमवीसी साइट लिख रहा हूं जिसमें उपयोगकर्ताओं को खाते बनाने और लॉग इन करने की संभावना शामिल है। जैसा कि मैं साइट को आक्रामक रूप से कैश करना चाहता हूं, मैं दौड़ रहा हूं कुछ परेशानी में प्रमाणीकरण के साथ कैशिंग मिश्रण।एएसपी.नेट एमवीसी
प्रत्येक पृष्ठ पर, शीर्ष पर, यदि उपयोगकर्ता लॉग इन है, तो मैं उनके उपयोगकर्ता नाम, उनके प्रोफ़ाइल का एक लिंक, और लॉग आउट करने के लिए एक लिंक आउटपुट करता हूं। अगर वे लॉग इन नहीं हैं, तो मैं एक मानक लॉगिन लिंक आउटपुट करता हूं। इसके अलावा, पृष्ठ में ही, कुछ सामग्री अनधिकृत उपयोगकर्ताओं को नहीं दिखायी जाती है, जबकि अन्य सामग्री इस बात पर निर्भर करती है कि कौन सा उपयोगकर्ता लॉग इन है।
मैंने पहले कुछ समय पहले इस समस्या को हल करने का प्रयास किया था, जिसे स्टैक ओवरफ्लो टीम ने हल किया था समस्या। जेफ ने जवाब दिया कि वे मूल रूप से अनधिकृत उपयोगकर्ताओं के लिए कोई कैशिंग नहीं करते हैं। इसलिए, मैंने एक विशेषता लिखा जो आउटपुट कैशएट्रिब्यूट से प्राप्त हुआ लेकिन उपयोगकर्ता को में लॉग इन किया गया है तो कैशिंग को रद्द कर देता है।
वर्तमान में, मैं उस विशेषता का उपयोग कर रहा हूं, लेकिन मुझे कुछ मामलों में गलत परिणाम मिल रहा है। उदाहरण के लिए, उपयोगकर्ता कुछ पेज पर जा सकते हैं, फिर लॉग इन कर सकते हैं, फिर पेज पर फिर से जाएं, केवल उनके उपयोगकर्ता नाम के बजाय शीर्ष पर लॉगिन लिंक देखने के लिए।
private
करने के लिएHttpCacheability
याCache-Control
प्रकार की स्थापना, बल्किpublic
से:यहां कुछ समाधान है कि मैं विचार कर रहा हूँ कर रहे हैं। इस तरह, प्रतिक्रिया केवल क्लाइंट-साइड कैश की जाती है। क्या इससे समस्या ठीक हो जाएगी? यदि ऐसा होता है, तो इसका कैशिंग की दक्षता पर असर पड़ेगा? मैंने देखा है कि स्टैक ओवरफ़्लो
public
का उपयोग करना प्रतीत होता है।- प्रत्येक उपयोगकर्ता जैसे in this tutorial के लिए अलग-अलग कैश करने के लिए VaryByCustom पैरामीटर सेट अप करना। क्या यह मदद करेगा, जबकि अभी भी कैशिंग की दक्षता और प्रभावशीलता बनाए रखेगी?
अग्रिम धन्यवाद!