2009-03-12 20 views
6

Oturum kapatma sayfası çağıran javascript işlevini tetikleyen bir oturum açma bağlantım var. Bu oturum kapatma sayfası oluşur şudur: Başlangıçta ben sadece orada cookies.clear vardıNiçin çerezim silinmiyor/silinmiyor?

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

, ama bu çalışma değildi.

<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 işlevi $.cookie ya çalışmaz: Burada

oturum kapatma sayfasına isteği göndermek javascript. Çerez ASP.NET tarafından belirlenir, bu yüzden ASP.NET ile de unsetemedim ama görünüşe göre değil. Herhangi bir fikir/öneri?

cevap

10

ASP.NET'te çerezlerle çalışmak biraz sezgisel olmayabilir. Zaten müşteri tarafında yaşayan bir kurabiyeyi öldürmek için, son kullanma tarihini geçmişte bir zamana ayarlamanız ve müşteriye yeni çerezi yeniden göndermeniz gerekir. İstemci tarayıcısı yeni son kullanma tarihi ile varolan çerez güncelleyebilirsiniz ve zaten son kullanma tarihi geçmiş olduğundan sonra hemen öldürecek: Rex söylediklerine ek olarak

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

Tamam, bu yüzden çıkış sayfama ulaşıyorum, hiçbir tanımlama bilgisi ayarlanmadığını söylüyor (request.cookies.count = 0), ancak giriş sayfasına yönlendirdiğinde tanımlama bilgisi yeniden belirir? ne kadar can sıkıcı. – Anders

+0

re: 'AppendCookie':" Bu API, .NET Framework altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir. " [Ref] (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.appendcookie.aspx) – HABO

4

, her zaman 'yolunu ayarlayarak olmalıdır Kullandığınız herhangi bir çerezden (genellikle "/" gibi bir şeye.) Aksi halde, çerezin görünürlüğü URL’deki klasör adına bağlıdır. Bu nedenle, düz bir URL şeması ayarına ve silme ayarlarına sahipseniz ve çerezleri silmek çok tahmin edilemez bir şekilde çalışır.

+0

İyi tavsiyeler. Sorun, jQuery ile tanımlama bilgisi oluştururken ve başka bir yoldaki bir ASP sayfasında silerken sorunum oluştu. – CleanUp

İlgili konular