我在测试服务器上删除cookie时遇到问题。在我的开发机器上,cookie删除正常。
这是来自fiddler的请求/回复。我正在尝试删除.Hv2 cookie
我试过没有设置响应cookie的路径部分 - 没有区别。这是从FF看到cookie的样子。
我在开发机器和测试服务器之间注意到的一个区别是我的开发机器上的cookie主机是.my.hostname.dev而不是.hostname.dev
以下是我用来删除Cookie的代码
var oldFormsCookie = context.Request.Cookies[".Hv2"];
if (oldFormsCookie != null)
{
context.Response.Cookies.Remove(oldFormsCookie.Name);
var removalCookie = new HttpCookie(oldFormsCookie.Name)
{
Expires = DateTime.Now.AddYears(-1),
Domain = oldFormsCookie.Domain,
Value = "remove"
};
context.Response.SetCookie(removalCookie);
}
在我看来它应该删除这个cookie!有人有任何想法?感谢
答案 0 :(得分:1)
看起来问题是cookie的域显示为null,而实际上它与FormsAuth cookie相同。我将代码更改为
Domain = oldFormsCookie.Domain ?? FormsAuthentication.CookieDomain
似乎有效