gpt4 book ai didi

javascript - 使 cookie 过期

转载 作者:可可西里 更新时间:2023-11-01 16:38:57 25 4
gpt4 key购买 nike

我正在努力遵守新的欧盟 cookie 立法法律,需要在用户同意之前删除我网站上的所有 cookie。目前我已经成功地使用了以下内容:

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 的 cookie,它是由 ASP.NET 创建的。为了克服这个问题,我在 web.config 文件中设置了以下内容,该文件基本上将 sessionID 存储在 URL 中:

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

我遇到的问题是,当我设置 cookieless="true"时,上面的 javasscript 代码不再删除我的任何 cookie,就像它变得多余一样。当我设置 cookieless="false"时,javascript 完美运行。是否需要更改任何其他设置才能使两者协同工作?

谢谢

最佳答案

如果不需要session,可以禁用sessionstate(mode="Off")

此外,我通常会像这样清理服务器端的 cookie(尽管它是否删除了 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);
}
}

希望对您有所帮助。

关于javascript - 使 cookie 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com