2009-12-22 11 views
5

मेरे पास कुछ साइटें हैं। प्रत्येक साइट एक स्थानीय संस्करण है जो स्थानीय लोगों के दिए गए सेट के लिए विशिष्ट सामग्री की सेवा करता है। वर्ल्ड वाइड या "ग्लोबल" साइट भी है।कुकी डोमेन प्राथमिकता?

मैं कुकी का उपयोग करके प्रत्येक आवेदन पर गतिविधि ट्रैक करने के लिए कोशिश कर रहा हूँ: इस प्रकार मैं उन्हें सेटअप। प्रत्येक साइट के लिए कुकी नाम समान है, और डोमेन के लिए डिफ़ॉल्ट सेटिंग्स का उपयोग करना (यानी .net में मैं httpCookie.Domain के लिए मान निर्दिष्ट नहीं कर रहा हूं - मैं इसे डिफ़ॉल्ट छोड़ रहा हूं)।

जब मैं अपनी "लोकेल विशिष्ट" साइटों पर जा रहा हूं, तो सब कुछ ठीक काम करता है, लेकिन एक बार जब मैं "वैश्विक" साइट पर जाता हूं, तो ऐसा लगता है कि जब मैं अपने "लोकेल विशिष्ट" साइटों पर जाने के लिए वापस जाता हूं तो इस साइट की कुकी का उपयोग किया जाता है "लोकेल विशिष्ट" साइट के लिए जारी कुकी के बजाए।

कैसे "स्थान विशिष्ट" साइटों पर मेरी "स्थानीय विशिष्ट" कुकी पर पूर्वता लेने से मेरी "वैश्विक" कुकी प्राप्त करने पर कोई भी विचार?

+2

"www.mydomain.com" में अपने वैश्विक साइट बनाने का स्पष्ट विचार से परे पढ़ सकते हैं? – JustLoren

उत्तर

8

अधिकांश ब्राउज़रों में, 'डोमेन' के बिना कुकी सेट करने से यह केवल वर्तमान होस्टनाम पर मान्य होता है। यह 'डोमेन' पर कोई मूल्य निर्धारित करके अन्यथा हासिल नहीं किया जा सकता है; यदि यह व्यवहार आप चाहते हैं तो आपको 'डोमेन' पैरामीटर को छोड़ना होगा।

हालांकि IE में, किसी भी कुकी तो आपको 'डोमेन' बिना सेट वर्तमान होस्ट नाम का एक अंतर्निहित 'डोमेन' मिल जाएगा। इसका अर्थ यह है कि यदि आप 'example.com' पर एक कुकी सेट करते हैं तो आप इसे 'sub.example.com' पर भेज नहीं सकते हैं।

इसलिए आप उप-मुख्य डोमेन की सुरक्षा संदर्भ का हिस्सा का हिस्सा नहीं है नहीं हो सकता। यदि आप अपने माता-पिता से अलग सबडोमेन रखना चाहते हैं तो आपको जरूरी है (जैसा कि जस्टलोरन सुझाव दिया गया है) मुख्य साइट www.example.com बनाएं और न केवल example.com

जब विभिन्न डोमेन के साथ दो कुकीज़ मान्य हैं, ब्राउज़र आमतौर पर उन्हें दोनों भेज देंगे, इसलिए आप document.cookie'a=b; a=c' की अपेक्षा कर सकते हैं। यदि आपकी कुकी-रीडिंग परत एक ही नाम के साथ कई कुकीज़ की अपेक्षा नहीं करती है, तो उनमें से एक गायब हो जाएगी (आपको कोई नियंत्रण नहीं मिलता है)।

अन्य दृष्टिकोण, यदि आप अन्य साइटों और मुख्य के बीच सीमाओं को रखने की परवाह नहीं करते हैं, तो अलग-अलग सबसाइट्स पर विभिन्न कुकी नामों का उपयोग करना होगा।

+0

यही कारण है कि मैंने मेरा जवाब नहीं दिया।आपका बहुत अधिक जानकारीपूर्ण था :) – JustLoren

+0

पोस्ट करने के बाद, मैंने कुछ पढ़ा और मुद्दे और समाधान के समान विवरण प्राप्त किए। मेरे लिए काम करने जा रहा है यह बाद का दृष्टिकोण है: "अन्य दृष्टिकोण, यदि आप अन्य साइटों और मुख्य के बीच सीमाओं को रखने की परवाह नहीं करते हैं, तो अलग-अलग सबसाइट्स पर विभिन्न कुकी नामों का उपयोग करना होगा।" मैं सिर्फ प्रति साइट थोड़ा अलग कुकी नाम बनाउंगा और वह परत जो उन्हें समझने के तरीके को समझती है, अलग-अलग नामों के बीच अंतर करने में सक्षम होगी। – Brian

0

बॉबन्स इंटरनेट एक्सप्लोरर के असामान्य व्यवहार के बारे में सही है। ध्यान दें कि एज अलग-अलग काम करता है, फ़ायरफ़ॉक्स की तरह (इस पहलू के लिए)।

यदि आप कोई कुकी गुण सेट नहीं करते हैं, तो आप शायद पथ के साथ समस्याओं में भाग लेंगे। आपके मामले में संपत्ति path=/ एक अच्छी पसंद होगी।

नोट वहाँ जिस तरह से वे कुकीज़ संभाल में ब्राउज़रों के बीच कई मतभेद हैं। यदि आप रुचि रखते हैं, तो आप How Different Browsers Handle Cookies Differently

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