c#-Cookie.为什么不做这项工作?

我迷路了,现在最简单的事情对我不起作用.

好的,如果我只用Step1运行此脚本,它将返回“ NotNull”-很好!

如果我然后仅用步骤2运行它,它将按预期返回“ Null”-好!

但是,如果我随后同时删除了步骤1和2(使用步骤2删除了Cookie)
它会切换回“ NotNull”-Baad!

怎么可能?如何检查Cookie是否为Null !?

希望你能帮助:)

        //Step 1
        HttpContext.Response.Cookies.Add(new HttpCookie("test") { Name = "test", Expires = DateTime.Now.AddDays(2) });

        //Stem 2
        HttpContext.Request.Cookies["test"].Expires = DateTime.Now.AddDays(-2);
        HttpContext.Request.Cookies.Remove("test");
        HttpContext.Request.Cookies.Clear();


        string test = "Null";

        if (HttpContext.Request.Cookies["test"] != null)
        {
            test = "NotNull";
        }

        return Content(test);
最佳答案
在第二步中,您尝试修改cookie,但仍在使用Request对象.要提交修改,您需要Response对象.因此,在您执行第二步后,cookie仍然有效.

    //Stem 2
    HttpContext.Response.Cookies["test"].Expires = DateTime.Now.AddDays(-2);
    HttpContext.Response.Cookies.Remove("test");
    HttpContext.Response.Cookies.Clear();

转载注明原文:c#-Cookie.为什么不做这项工作? - 代码日志