/ / Изтичане на срока на бисквитка - javascript, asp.net, http, бисквитки, уеб

Изтичането на cookie изтича - javascript, asp.net, http, cookies, web

Опитвам се да спазвам новото законодателство на ЕС за законодателството в областта на бисквитките и трябва да премахна всички бисквитки на моя сайт, преди потребителят да се съгласи с него. В момента успешно използвам следното:

function deleteAllCookies() {
var cookies = document.cookie.split(";");

for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}

Но след като този процес тече, все още имабисквитка, наречена ASP.NET_SessionID, която е създадена от ASP.NET. За да преодолея това, зададох следното във файла web.config, който основно съхранява sessionID в URL адреса:

 <sessionState regenerateExpiredSessionId="true" cookieless="true" />

Проблемът, който имам, е когато го настрояcookieless = "true" кодът на javasscript по-горе не премахва нито една от бисквитките ми, като че ли става излишна. Когато задам cookieless = "false", javascript работи перфектно. Има ли други настройки, които трябва да променя, за да получа и двете да работят заедно?

Благодаря

Отговори:

1 за отговор № 1

Ако не се нуждаете от сесия, можете да деактивирате sessiontatetate (mode = "Off")

Също така обикновено почиствам бисквитките от страна на сървъра, като този (никога не изглеждах дали е премахнат asp.net sessionid все пак):

protected void Page_Load(object sender, EventArgs e)
{
Response.BufferOutput = true;
Session.Abandon();
HttpCookieCollection cookies = Request.Cookies;
var cookiesList = new List<String>();
foreach (String cookieKey in cookies)
cookiesList.Add(cookieKey);

foreach (var cookieKey in cookiesList)
{
var cookie = new HttpCookie(cookieKey);
cookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(cookie);
}
}

Надявам се това да помогне.