क्या सत्र में कुछ मानों के आधार पर एमवीसी में आउटपुट कैश को बदलना संभव है? मैंने difbyby कस्टम कार्यक्षमता का उपयोग करने और Global.asax में GetVaryByCustomString को ओवरराइड करने के बारे में बहुत कुछ पढ़ा है लेकिन सत्र इस समय उपलब्ध नहीं है।सत्र मूल्यों के आधार पर एमवीसी आउटपुट कैश
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom == "somekey")
//Want to check the session here (but it isn't available).
return base.GetVaryByCustomString(context, custom);
}
मुझे समझ में आता है क्योंकि सत्र बाद में अनुरोध पाइपलाइन में नहीं बनाया गया है।
मेरी चिंता यह है कि उपयोगकर्ता के सत्र के आधार पर कैश को अलग किए बिना, पृष्ठ (जो सत्र में उपयोगकर्ता के पास है, उस उपयोगकर्ता के लिए अतिरिक्त HTML विशिष्ट है) पर कैश किया जाएगा (जैसा कि यूआरएल है वही) और हमारे लोड बैलेंसर, प्रॉक्सी सर्वर इत्यादि द्वारा परोसा जाता है और फिर पृष्ठ पर अन्य लोगों की सत्र जानकारी के साथ अन्य अनुरोधों पर कार्य करता है!
कारण यूआरएल एक ही है कि उपयोगकर्ता, एक 'अतिथि' के रूप में में आता है कुछ जानकारी (बाद का) में प्रवेश करती है, यह सत्यापित और सत्र में संग्रहीत किया जाता है और फिर वे कर रहे हैं वापस एक ही पृष्ठ पर री-डायरेक्ट है (जो अब सत्र डेटा के आधार पर उपयोगकर्ता के लिए विशिष्ट होना चाहिए)।
पृष्ठ को स्वयं सामान्य रूप से कैश किया जाना चाहिए क्योंकि यदि कोई 'अतिथि' एक ही यूआरएल पर जाता है, तो उसे हर बार एक ही 'मानक' पृष्ठ पर कार्य करना चाहिए।
इस तरह से कैशिंग को बदलना संभव है?