• 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,用户的登录状态依然存在,并未提示重新登录,不知道是哪里的问题,在此记录一下,希望路过的大佬能解惑,拜谢!

  • 相关阅读:
    烧写NAND Flash时出现错误:*** Warning bad CRC or NAND, using default environment
    在ubuntu下如何验证文件的MD5码
    条件编译#ifdef MACRO_A和#if defined(MACRO_A)的区别
    用nmap获取ip和mac地址
    rcS中启动udevd
    ubuntu下minicom不能接受键盘输入
    ios audioqueue 流播放接口
    ffmpeg 0.8.11 VC编译的SDK已经发布
    lua 字符串数学表达式运算
    ffmpeg 0.8.11 VC编译的SDK已经发布
  • 原文地址:https://www.cnblogs.com/qinsikao/p/10450051.html
Copyright © 2020-2023  润新知