2008-11-14 20 views
13

द्वारा भिन्न होता है मैं अपने हाल ही में launched tiny webapp पर LINQ2SQL के साथ एएसपी.NET पूर्वावलोकन 5 (जल्द ही बीटा में अपग्रेड करूँगा) का उपयोग कर रहा हूं।एएसपी.नेट एमवीसी कैशिंग प्रमाणीकरण

मुझे अपने काम पर इतना गर्व था जब तक कि Silverlight.net ने इसे पहले पृष्ठ पर प्रदर्शित नहीं किया और यह आगंतुकों की विनम्र संख्या से अधिक प्राप्त करना शुरू कर दिया।

किसी कारण से, उपयोगकर्ताओं को कभी-कभी LINQ2SQL द्वारा "निर्दिष्ट कास्ट अमान्य" फेंक दिया जाता है - ऐसा इसलिए होता है क्योंकि अनधिकृत उपयोगकर्ताओं को "अतिथि" उपयोगकर्ता के रूप में संभाला जाता है, और नियंत्रक प्रत्येक के लिए उपयोगकर्ता "अतिथि" के बारे में जानकारी लोड कर रहा है मारो।

पहले पृष्ठ में, शीर्ष पर "स्वागत [USERNAME]" है जिसे Donut Caching का उपयोग करके आसानी से कैश किया जा सकता है।

हालांकि, बीच में नीचे, "Dudlers.com क्या है" ब्लॉक है जिसे केवल अनधिकृत उपयोगकर्ताओं को दिखाया जाना चाहिए, और दूसरा "आपके बारे में" ब्लॉक जिसे केवल प्रमाणित उपयोगकर्ताओं को दिखाया जाना चाहिए। इन ब्लॉकों को डोनट कैशिंग का उपयोग करके कैश किया जाना बहुत जटिल है; वे बहुत अलग हैं, यह बहुत गन्दा होगा।

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

प्रमाणीकरण द्वारा भिन्न कैशिंग निर्दिष्ट करने का कोई विकल्प है? कुछ ऐसा: [आउटपुट कैश (VaryBy = प्रमाणीकरण)]

या कोई अन्य गैर- एएसपी.नेट एमवीसी समाधान है? (शायद एमएस एसक्यूएल ट्यूनिंग)

मुझे आशा है कि मेरा प्रश्न स्पष्ट है। मैं उसी समर्पित सर्वर पर विंडोज 2003 और एमएस एसक्यूएल 2005 एक्सप्रेस चला रहा हूं।

धन्यवाद!

+0

क्या आपने डोनट कैशिंग को चलाने और चलाने का प्रबंधन किया था? –

उत्तर

12

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

इस बारे में अधिक जानकारी के लिए बाहर की जाँच करें: http://aspadvice.com/blogs/ssmith/archive/2007/10/29/VaryByCustom-Caching-By-User.aspx

ASP.NET MVC के लिए ठीक काम करना चाहिए।

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