This isn't the same as answered elsewhere (afaik), I'm documenting my answer for my own future use, but I'd also be interested in knowing more
I've created a cookie on the client in javascript like so
document.cookie = "Navigating=true";
and I've tried removing it on the server by setting the expiry date with
string cookieName = "Navigating";
Response.Cookies.Remove(cookieName);
HttpCookie myCookie = new HttpCookie(cookieName);
myCookie.Expires = DateTime.Now.AddDays(-2);
Response.Cookies.Add(myCookie);
It doesn't work, here's the network trace
Note the name is wrong, it's cookie11 (I've removed the other cookies from the screenshot, it was the 11th cookie)
So now I set the value of the cookie to be something
myCookie.Value = "true";
and try again, it still doesn't work, screenshot 2
The key is now right but the path is still wrong, so finally
if (Request.Cookies[cookieName] != null)
{
//Response.Cookies.Remove(cookieName);
HttpCookie myCookie = new HttpCookie(cookieName);
myCookie.Expires = DateTime.Now.AddDays(-2);
myCookie.Value = "true";
myCookie.Path = "";
Response.Cookies.Add(myCookie);
}
and now the server removes the cookie correctly
This works, so there's no question, but I'd be interested in knowing why the javascript cookie doesn't have a path but the asp.net one does by default