在web开发中Cookie是必不可少的

.NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不了Cookie。

例子如下:

  1. protectedvoid Page_Load(object sender, EventArgs e)  

  2. {  

  3. if (!IsPostBack)  

  4.    {  

  5.        HttpCookie UserInfo = new HttpCookie("UserInfo");  

  6.        UserInfo.Value = "bdstjk";  

  7.        Response.Cookies.Add(UserInfo);  

  8.    }  

  9. }  

  10. protectedvoid btnRemoveCookie_Click(object sender, EventArgs e)  

  11. {  

  12.    Response.Cookies.Remove("UserInfo");  

  13.    Response.Write("<script type=\"text/javascript\">alert(\"删除Cookie成功!\");</script>");  

  14. }  

  15. protectedvoid btnCheckCookie_Click(object sender, EventArgs e)  

  16. {  

  17. if (Request.Cookies["UserInfo"] != null)  

  18.    {  

  19.        Response.Write("Cookie存在,"+Request.Cookies["UserInfo"].Value);  

  20.    }  

  21. else

  22.    {  

  23.        Response.Write("Cookie不存在");  

  24.    }  

  25. }  

页面代码:

  1. <asp:Button ID="btnRemoveCookie" runat="server" Text="删除Cookie"

  2.            onclick="btnRemoveCookie_Click" />  

  3. <asp:Button ID="btnCheckCookie" runat="server" Text="检查Cookie"

  4.            onclick="btnCheckCookie_Click" />  

运行代码测试,你会发现,怎么点删除按钮,cookie都存在。


那么如果我们想删除cookie应该怎么做呢?

把删除cookie的代码改成如下语句:

  1. if (Request.Cookies["UserInfo"] != null)  

  2. {  

  3.    Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);  

  4. }  

  5. Response.Write("<script type=\"text/javascript\">alert(\"删除Cookie成功!\");</script>");