2008-11-19 18 views
6

मुझे मिल गया है दो ASP.Net अनुप्रयोगों मेरे सर्वर पर दो अलग-अलग फ़ोल्डरों में रहने वाले:अलग ही ASP.Net सत्र कुकी साझा करना अनुप्रयोग

  • /Foo < - इस मानक असुरक्षित आवेदन
  • है /Secure < - यह एक अलग आवेदन है कि आईआईएस करके SSL की आवश्यकता है

समस्या यह है कि डिफ़ॉल्ट रूप से, ASP.NET_SessionId कुकी डोमेन पर निर्दिष्ट किया जाता है और साझा किया जाता है है विभिन्न निर्देशिकाओं में दो अनुप्रयोगों के बीच। मुझे सत्र कुकी अलग होने की आवश्यकता है क्योंकि /Secure एप्लिकेशन तक पहुंच प्रदान करने के लिए उपयोग किए जाने के लिए मैं /Foo पर अपहृत कुकी को अनुमति नहीं दे सकता।

आदर्श रूप से, मैं प्रत्येक एप्लिकेशन की कुकी को कुकी Path संपत्ति द्वारा सीमित करना चाहता हूं। ऐसा करने का कोई तरीका नहीं है। बॉक्स से बाहर निकलें।

एक अतिरिक्त सिरदर्द के रूप में, यहां तक ​​कि अगर मैं कुकी पथ सेट करने के लिए कस्टम कोड लिख, मैं भयभीत कि कुछ ब्राउज़र केस संवेदी होते हैं और /Foo और /foo है, जो, पर कैसे निर्भर करता है के लिए एक ही सत्र कुकी का उपयोग नहीं होगा लिंक बनाए गए हैं, परिणामस्वरूप एक ही आवेदन में कई सत्र हो सकते हैं।

क्या किसी ने इस मुद्दे का सामना किया है और इस पर काबू पा लिया है?

उत्तर

9

.Net 2.0 और ऊपर में, आप अपने web.config में "sessionState" XML तत्व की "कुकी नाम" विशेषता को अपने प्रत्येक एप्लिकेशन के लिए अलग-अलग मानों पर सेट कर सकते हैं। यह उन्हें एक ही सत्र आईडी का उपयोग करने से रोक देगा।

Here's the MSDN reference for this.

+0

नई कड़ी http://msdn.microsoft.com/en- हमें/पुस्तकालय/h6bb9cz9 (v = vs.80) .aspx – Palani

0

लगता है जैसे वे अलग वर्चुअल निर्देशिका में हैं, लेकिन अभी भी एक ही ऐप्लिकेशन पूल में हैं। यदि आप वास्तव में एप्लिकेशन को अलग करना चाहते हैं, तो अपने/सुरक्षित ऐप के लिए एक और एप्लिकेशन पूल बनाने का प्रयास करें।

0

आईआईएस में अपने /Secure फ़ोल्डर के लिए आइकन देखें।

यदि उसके पास एक कोग आइकन है तो यह एक अलग एप्लीकेशन है और सत्र अलग होना चाहिए और ऐप अपने स्वयं के एपडोमेन में चलाएगा।

यदि यह एक ग्लोब आइकन है तो यह एक वर्चुअल निर्देशिका है और रूट सत्र और /Foo के समान सत्र साझा करेगा।

1

आप रूपों प्रमाणीकरण का उपयोग कर रहे हैं, तो आप भी web.config में रूपों कुकी को बदलने की जरूरत:

<forms name="Foo"... 
<forms name="Secure"... 
संबंधित मुद्दे