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,用戶的登錄狀態依然存在,並未提示重新登錄,不知道是哪裏的問題,在此記錄一下,希望路過的大佬能解惑,拜謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章