2010-08-10 13 views
7

मैं एएसपी.NET संसाधन सेट करने की कोशिश कर रहा हूं। तो अगर मुझे मिल गया/foo/दिखाया गया है तो यह कुछ संसाधनों के लिए एक दृश्य दिखाएगा, और इसे कुछ घंटों तक कैश करेगा (उदाहरण के लिए)। ऐसा करने के लिए, मैं आउटपुट कैश विशेषता का उपयोग कर रहा हूं जो मेरी क्रिया विधि को सजाने में सक्षम है। इस कैश का विवरण (इस क्रिया विधि के विरुद्ध) web.config फ़ाइल में पाए जाते हैं।एएसपी.NET ऐप में एस-मैक्सएज कैशकंट्रोल मान कैसे सेट करें?

जब मैं यह आउटपुट कैश सेट करता हूं, तो यह सही ढंग से maxage value सेट कर रहा है .. लेकिन s-maxage मान 0. डब्ल्यूटीएफ है?

यहाँ कोड है ...

[Authorize] 
[OutputCache(CacheProfile = "SomeController_Show")] 
public ActionResult Show(){ ... } 

और यहाँ कॉन्फ़िग फ़ाइल का एक टुकड़ा है ..

<add name="SomeController_Show" duration="3600" varyByParam="authkey;format;blah" /> 

और प्रतिक्रिया का एक टुकड़ा ...

Cache-Control:public, max-age=3576, **s-maxage=0** 
Content-Length:746 
Content-Type:application/json; charset=utf-8 
Date:Tue, 10 Aug 2010 00:42:17 GMT 
Expires:Tue, 10 Aug 2010 01:41:53 GMT 
Last-Modified:Tue, 10 Aug 2010 00:41:53 GMT 
Server:Microsoft-IIS/7.0 
Vary:* 

ध्यान दें कि अधिकतम कैसे सही ढंग से सेट किया गया है लेकिन एस-मैक्सेज नहीं है? क्या कोई मुझे यहां से बाहर निकलने में मदद कर सकता है?

उत्तर

12

मुझे जवाब मिला, [AuthorizeAttribute] किसी भी अधिकतम शून्य को साफ़ करता है। इसका मतलब यह है कि प्रत्येक कैश को देखने के परिणामस्वरूप कोई प्रॉक्सी नहीं होती है जिसमें प्राधिकरण है।

मैं यूआरएल के माध्यम से प्रॉक्सी कैश सामग्री का अनुमान लगा रहा हूं .. इसलिए यदि यूआरएल में कोई प्रमाणीकरण विवरण नहीं है (जो वास्तव में नहीं होना चाहिए ... :)) .. तो यह कैसे पता चलता है कि कौन से दो भिन्न हैं अनुरोध एक ही व्यक्ति के लिए हैं या नहीं?

(मैंने इस समस्या के साथ अन्य देवताओं की सहायता के लिए हटाने के बजाए यह उत्तर जोड़ा है)।

इसके अलावा, समान प्रश्न: Can someone explain this block of ASP.NET MVC code to me, please?

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