删除 HttpCookie 不仅仅是它的值
Deleting an HttpCookie Not Just Its Value
Using MVC
我正在登录时创建一个cookie,如下所示:
Response.Cookies.Add(New HttpCookie("UserId", Id))
我搜索了删除cookie的方法,以便我可以在注销时使用它,我找到了这个:
If Response.Cookies("UserId") IsNot Nothing Then
Dim c = New HttpCookie("UserId")
c.Expires = DateTime.Now.AddDays(-1)
Response.Cookies.Add(c)
End If
Response.Cookies.Clear()
在客户端,我正在执行以下操作:
document.cookie = "access_token=";
但是我发现这不会删除cookie,它只是清空它,我仍然会有一个名为UserId
的cookie,其值为Nothing
。
现在,如果用户注销并在它之后立即登录,则会给我带来问题。
我想做的,是完全删除名为UserId
的Cookie,将其从浏览器cookie中完全删除,而不仅仅是清空其值。
有什么办法可以做到这一点吗?
编辑
我认为问题出在这一部分:
If Response.Cookies("UserId") IsNot Nothing Then
Dim c = New HttpCookie("UserId")
因为当我调试这段代码时,在这一行之后,我得到的 Response.Cookie 的计数是 2 ,这意味着它正在创建 2 个同名的 cookie 并感到困惑。
你错过了expires
,例如:
document.cookie="access_token=; expires=Thu, 18 Dec 2013 12:00:00 UTC";
您可以使用
ControllerContext.HttpContext.Response.Cookies.Remove("cookie name")
但是您不能直接删除cookie,您必须将其设置为在当前日期之前过期,例如:
myCookie.Expires = DateTime.Now.AddDays(-1d);
相关文章:
- Ajax聊天消息重复而不仅仅是更新
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 事件为所有项目而不仅仅是当前项目激发
- 在加载时显示,而不仅仅是在选中时显示
- 删除 HttpCookie 不仅仅是它的值
- 脚本选择所有输入,而不仅仅是复选框
- for 循环中的 if 语句都执行,而不仅仅是一个
- 当将函数传递给方法时,为什么使用匿名函数容器而不仅仅是原始函数有效
- .slideup()删除整个ul,而不仅仅是嵌套的li
- jQuery隐藏所有trs或td,而不仅仅是一个
- 使用Maven压缩所有内容,而不仅仅是源目录
- 从数组中删除双值,而不仅仅是javascript中的重复值
- 在全球范围内强制ng严格di,而不仅仅是在ng应用程序级别上
- Jquery Slider-获取滑块的每个数值?不仅仅是在mouseout上
- 我如何让jQuery在Facebook发布自动加载时做一些事情,而不仅仅是在页面加载时
- 如何使元素的宽度和高度为页面(文档)的100%,而不仅仅是窗口(浏览器)
- 在 Magnific 弹出窗口中打开所有图像,而不仅仅是发布图像
- 有没有办法使非html5支持浏览器支持html5,而不仅仅是html5标记,html5 api也是如此
- 之前每个测试都会调用每个测试,而不仅仅是一次
- javascript 类“chzn-select”不仅仅是一个类名吗?