Вы говорите о непостоянном cookie. По умолчанию asp.net отправляет куки таким способом. Основное различие между ними заключается в том, что для постоянного файла cookie задано значение expires.
Так что, если вы не хотите, чтобы cookie сохранялись, не устанавливайте значение expires.
Тем не менее, cookie будет оставаться в памяти, пока браузер фактически не закроется. Допустим, они заходят на ваш сайт, а вы устанавливаете непостоянный файл cookie. Они делают вещи и уходят. Позже они, используя тот же экземпляр браузера, возвращаются на ваш сайт. Печенье все еще будет там.
Теперь, если они закроют браузер в любой момент, то файл cookie будет удален.
Дело в том, не устанавливайте заголовок expires. Особенно, когда истекает дата сессии. Даты сессий, как правило, будут составлять всего около 20 минут в будущем, но срок их действия продлевается, когда пользователь просматривает ваш сайт.
===== update =====
Я использовал следующий код для тестирования:
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 просто имел кнопку, которая запускала этот обработчик button1_click. Когда я сначала захожу к нему с помощью любого из последних браузеров (например, Firefox, Chrome), там нет cookie. После того, как я нажму кнопку, файл cookie будет установлен. Затем я полностью закрыл браузер, снова открыл и вернулся на сайт. Во всех случаях печенье пропало.