9

我试图确定 cookie 是否存在以及是否已使用此代码过期:

if(HttpContext.Current.Response.Cookies["CookieName"]){
    Do stuff;
}

然而,经过长时间的泪水和汗水,我注意到这一行实际上是在创建一个空白 cookie 或覆盖现有的 cookie,并且它的值是空白并在 0 处过期。

我通过阅读所有 cookie 并寻找类似的匹配项来解决这个问题

if (context.Response.Cookies.AllKeys.Contains("CookieName"))
        {
            Do stuff;
        }

这似乎不是最优的,我发现我最初的尝试创建了一个 cookie 很奇怪。有人对cookie有很好的解释吗?

4

1 回答 1

18

您正在使用Response.Cookies. 这是错误的 - 它们是发送回浏览器的 cookie。

要阅读现有的 cookie,您需要查看Request.Cookies

if (context.Request.Cookies["CookieName"] != null)
{
   //Do stuff;
}
于 2013-08-30T09:41:12.177 回答