jquery.cookie.js 删除cookie
简单交代一下背景:asp.net页面的上的切换登录按钮的点击事件实现cookie的删除。
但是好像没办法直接删除,通过网上提供的方法,可以使用jquery.cookie.js 来操作cookie的创建删除。
附下载地址:http://plugins.jquery.com/cookie/
找到了如下几种删除方式:
//切换登录
function SwitchingUser() {
$.cookie('User', null, {path:'/'});
//$.cookie("User", '', { expires: -1, path: '/' });
//$.removeCookie('User', { path: '/' });
window.location.href = '@Url.Action("HRlogin","Login")';
}
第一种虽然cookie的值被清空了。通过谷歌打印我这个User=null;但是过滤器那里没有任何反应。(我过滤器里面验证判断cookie为null就要提示重新登录。)
后面两种删除cookie后,打印的结果为空,这个时候过滤器就可以正常验证了。
过滤器代码
public class LoginFilter: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
ContentResult msg = new ContentResult();
if (HttpContext.Current.Request.Cookies["User"] == null)
{
msg.Content = "<script>alert('身份驗證已過期,請重新登錄!');window.top.location.href='/Login/HRLogin'</script>";
filterContext.Result = msg;
}
}
}
第一种打印结果:
后两种方式的打印结果:
逻辑上没啥问题,但第一种方式删除cookie为null后,返回到页面后,虽然值为null,用户的登录状态依然存在,并未提示重新登录,不知道是哪里的问题,在此记录一下,希望路过的大佬能解惑,拜谢!
与忘记某些内容重新再去学相比,做笔记更适合我这种懒的再去学一遍的人。