2011-08-09 3 views
9

मैं अपना लॉगिन विधि में निम्नलिखित कोड है:सी #/ASP.NET: डोमेन संपत्ति के साथ कुकीज़ नहीं निकाल सकते निर्दिष्ट

Response.Cookies["cookie"].Value = "..."; 
Response.Cookies["cookie"].Domain = "domain.com"; 

इस तरह कुकी मुख्य डोमेन में डाल दिया है और सभी उप डोमेन

लेकिन जब मैं कुकीज़ दूर करने की कोशिश:

Response.Cookies["cookie"].Expires = DateTime.Now.AddYears(-1); 

यह काम नहीं करता है!

जब मैं कोड की 2 पंक्ति को हटाता हूं जहां डोमेन प्रॉपर्टी निर्दिष्ट होती है, तो यह ठीक काम करता है।

मैं इस समस्या को कैसे हल कर सकता हूं?

धन्यवाद

+0

कोई भी? मैं हमेशा इसके लिए संघर्ष कर रहा हूं .... – Alex

उत्तर

24

ठीक है, मुझे लगता है कि समझ से बाहर।

जब आप डोमेन संपत्ति सेट एक कुकी हटाने के लिए, आप नए नकली कुकी के लिए बहुत ही संपत्ति निर्धारित करने की आवश्यकता:

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    myCookie.Domain = "domain.com"; // !!!! 
    Response.Cookies.Add(myCookie); 
} 
+1

अपना उत्तर एलेक्स साझा करने के लिए धन्यवाद। यह मुझे दोस्त की मदद की – DotNetInfo

4

मुझे लगता है आप एक उप डोमेन पर Expires सेट कर रहे हैं Response है, जबकि ...
जांचने: आप कोशिश करते हैं और खुद को डोमेन से यह सेट और देखते हैं कि अगर काम करता है सकते हैं?

http://msdn.microsoft.com/en-us/library/ms178195%28v=VS.100%29.aspx के अनुसार आप से एक कुकी हटा सकते हैं:

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

आपके उत्तर के लिए धन्यवाद। मैंने कुकीज़ को डोमेन से ही सेट किया है। मैंने एक ही उदाहरण की कोशिश की, और यह केवल ओपेरा में काम करता है। – Alex

+0

उचित समाधान प्रदान करने के लिए धन्यवाद। –

0

काफ़ी आसपास खोजा, और यह काम करने के लिए नहीं मिल सका। मुझे इसे काम करने के लिए वास्तव में मूल्य संपत्ति निर्धारित करना पड़ा! एमवीसी 3 .net 4.

 var current = HttpContext.Current.Request.Cookies[key]; 
     if (current == null) return; 
     var myCookie = new HttpCookie(key) 
          { 
           Expires = DateTime.Now.AddYears(-1), 
           Value = current.Value, 
           Domain = domain 
          }; 
     HttpContext.Current.Response.Cookies.Set(myCookie); 
संबंधित मुद्दे