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")';
    }
View Code

 

第一种虽然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;
            }
        }
    }
View Code

 

第一种打印结果:

 

后两种方式的打印结果:

 

逻辑上没啥问题,但第一种方式删除cookie为null后,返回到页面后,虽然值为null,用户的登录状态依然存在,并未提示重新登录,不知道是哪里的问题,在此记录一下,希望路过的大佬能解惑,拜谢!

原文地址:https://www.cnblogs.com/qinsikao/p/10450051.html