Mówisz o nietrwałym pliku cookie. Domyślnie asp.net wysyła ciasteczka w ten sposób. Główną różnicą między nimi jest to, że trwały plik cookie ma ustawioną wartość wygasania.
Tak więc, jeśli nie chcesz, aby plik cookie pozostał, nie ustawiaj wartości wygasania.
To powiedziawszy, plik cookie pozostanie w pamięci, dopóki przeglądarka nie zostanie faktycznie zamknięta. Załóżmy, że przeglądają witrynę i ustawiasz nietrwały plik cookie. Robią różne rzeczy i przeglądają. Później, używając tej samej instancji przeglądarki, wracają do Twojej witryny. Plik cookie nadal tam będzie.
Teraz, jeśli zamknęli przeglądarkę w dowolnym momencie, plik cookie zostanie przepłukany.
Punkt to, nie ustawiaj nagłówka wygasania. Zwłaszcza, gdy nie upłynie data sesji. Daty sesji to zazwyczaj około 20 minut w przyszłości, ale data wygaśnięcia przewija się do przodu, gdy użytkownik przegląda Twoją witrynę.
===== aktualizacja =====
Użyłem następujący kod do testowania:
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
HttpCookie c = Request.Cookies["test"];
if (c != null) {
Response.Write(String.Format("test value is {0} <br />", c.Value));
}
} else {
HttpCookie c = new HttpCookie("test");
c.Value = "HERE IT IS";
Response.Cookies.Add(c);
}
}
protected void Button1_Click(object sender, EventArgs e) {
Response.Write("clicked<br />");
}
.aspx plik prosty przycisk, który miał opalane że obsługi button1_Click. Kiedy początkowo przeglądam to przy użyciu dowolnej z najnowszych przeglądarek (np. Firefox, chrome), nie ma pliku cookie. Po kliknięciu przycisku ustawiony jest plik cookie. Następnie całkowicie zamknąłem przeglądarkę, ponownie otworzyłem i ponownie przeglądałem stronę. We wszystkich przypadkach plik cookie zniknął.
http://stackoverflow.com/questions/12582689/delete-cookies-on-session-timeout – Shurmajee