/ /クッキーを期限切れにする - javascript、asp.net、http、クッキー、web

クッキーを有効期限切れにする - javascript、asp.net、http、cookies、web

私は、クッキーの法律に関する新しいEU法を遵守しようとしており、ユーザーが同意する前に、私のサイトのすべてのクッキーを削除する必要があります。現在、私は次のものをうまく使いました。

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によって作成されたASP.NET_SessionIDというCookie。これを克服するために、基本的にURLにsessionIDを格納するweb.configファイルに以下を設定します。

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

私が持っている問題は私が設定したときですcookieless = "true"上記のjavasscriptコードでは、Cookieを削除する必要がなくなり、不要になります。cookieless = "false"に設定すると、JavaScriptは完全に機能します。両方一緒に働く?

ありがとう

回答:

回答№1は1

セッションが必要ない場合は、sessionstateを無効にすることができます(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);
}
}

これが役立つことを願っています。