2009-03-12 11 views
6

मेरे पास एक लॉगिन लिंक है जो एक जावास्क्रिप्ट फ़ंक्शन को सक्रिय करता है जो लॉगआउट पृष्ठ को कॉल करता है। यह वही है लॉगआउट पेज के होते है:यह क्यों है कि मेरी कुकी हटाई/अनसेट नहीं हो रही है?

If Response.Cookies.Count > 0 Then 
    Response.Cookies("aLog").Value = Nothing 
    Response.Cookies.Clear() 
End If 

मूल रूप से मैं बस वहाँ में cookies.clear था, लेकिन जो काम नहीं कर रहा था।

<script type="text/javascript"> 
    //<![CDATA[ 
    $(document).ready(function() { 
     $('#logout-link').click(function() { 
      if (confirm("Really log out?")) { 
       $.cookie('aLog', null); 
       location.href = $(this).attr('href'); 
      } 
      return false; 
     }); 
    }); 
    //]]> 
</script> 

jQuery समारोह $.cookie या तो काम नहीं करता:

यहाँ जावास्क्रिप्ट कि लॉगआउट पृष्ठ पर अनुरोध भेजने के लिए है। कुकी एएसपी.नेट द्वारा निर्धारित की गई है, इसलिए मुझे लगा कि मैं इसे एएसपी.नेट के साथ भी परेशान कर सकता हूं लेकिन स्पष्ट रूप से नहीं। कोई विचार/सुझाव?

उत्तर

10

एएसपी.नेट में कुकीज़ के साथ काम करना थोड़ा सहज नहीं हो सकता है। एक कुकी को मारने के लिए जो क्लाइंट-साइड पर पहले से ही रहता है, आपको अतीत में कभी-कभी इसकी समाप्ति तिथि निर्धारित करनी होगी, और ग्राहक को नई कुकी दोबारा भेजनी होगी। ग्राहक ब्राउज़र नई समाप्ति तिथि के साथ मौजूदा कुकी अपडेट करेगा, और फिर तुरंत यह मारने के बाद से यह पहले से ही समयावधि समाप्त चुकी है:

HttpCookie cookie = Request.Cookies["aLog"]; 
cookie.Expires = DateTime.Now.AddYears(-10); 
Response.AppendCookie(cookie); 
+1

ठीक है, इसलिए मैं अपने लॉगआउट पेज पर जाता हूं, यह कहता है कि कोई कुकी सेट नहीं है (request.cookies.count = 0), लेकिन जब यह लॉगिन पेज पर रीडायरेक्ट होता है तो कुकी फिर से दिखाई देती है? कैसा कष्टकर। – Anders

+0

पुन: 'AppendCookie': "यह एपीआई .NET Framework आधारभूत संरचना का समर्थन करता है और इसका उद्देश्य सीधे आपके कोड से उपयोग नहीं करना है।" [रेफरी] (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.appendcookie.aspx) – HABO

4

क्या रेक्स कहा करने के लिए इसके अलावा, आप हमेशा 'पथ की स्थापना की जानी चाहिए 'आप जिस कुकी का उपयोग करते हैं (आमतौर पर कुछ "/") के लिए। अन्यथा, कुकी की दृश्यता यूआरएल में फ़ोल्डर के नाम पर निर्भर करती है, इसलिए यदि आपके पास कोई फ्लैट यूआरएल योजना सेटिंग और कुकीज़ हटाने से कुछ भी अप्रत्याशित रूप से काम करेगा।

+0

अच्छी सलाह। कुकी के साथ कुकी सेट करते समय और फिर इसे किसी अन्य पथ पर एएसपी पृष्ठ में हटाते समय मेरी समस्या आई। – CleanUp

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