我的团队维护着一套C#应用程序,它们共享一组共同的cookie。
最近,我们遇到了cookie大小过大的情况,用户在访问我们的生产站点时开始遇到400错误。
我写了一个小的webforms应用程序,它将迭代我们的cookie列表并删除它们,但不包括我们尝试在Global.asax中读取/写入cookie的共享代码:
foreach (var c in cookieList)
{
HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies[c];
if (currentUserCookie != null)
{
HttpContext.Current.Response.Cookies.Remove(c);
currentUserCookie.Expires = DateTime.Now.AddDays(-10);
currentUserCookie.Value = null;
HttpContext.Current.Response.SetCookie(currentUserCookie);
}
}
但是,我们网站上的所有页面仍然存在错误。我们能找到的唯一解决方案是让用户手动删除他们的cookie。
我们是否可以触发从服务器端删除我们的cookie并为用户节省手动清除cookie的麻烦?我们正在使用IE11和Chrome 54。
答案 0 :(得分:0)
此行尝试更新现有Cookie(从响应中删除)
HttpContext.Current.Response.SetCookie(currentUserCookie);
试试这个..
foreach (var c in cookieList)
{
HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies[c];
if (currentUserCookie != null)
{
HttpContext.Current.Response.Cookies.Remove(c);
currentUserCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(currentUserCookie);
}
}