如何设置cookie值?

Posted

技术标签:

【中文标题】如何设置cookie值?【英文标题】:How to set cookie value? 【发布时间】:2016-02-06 23:11:59 【问题描述】:

我正在执行以下操作来设置 cookie 值:

HttpCookie mycookie = new HttpCookie("mycookie");
mycookie.Value = "value1";  // Case sensitivity
mycookie.Expires = DateTime.Now.Add(1);
HttpContext.Current.Response.Cookies.Add(mycookie);

稍后,我使用以下方法检查 cookie:

HttpCookie mycookie = HttpContext.Current.Request.Cookies["mycookie"];

我注意到它仍然具有旧值:

mycookie.Value == "oldValue"

我什至可以在设置 cookie 后立即检查它,而我设置的值不存在。它仍然是旧值。

值没有被设置是怎么回事?我该如何设置它???

【问题讨论】:

【参考方案1】:

试试这个,你需要删除它然后添加它

var response = HttpContext.Current.Response;
response.Cookies.Remove("mycookie");
response.Cookies.Add(cookie);

【讨论】:

【参考方案2】:

当前的解决方案在Asp.Net MVC Framework 中运行良好 但它在ASP.NET Core+中不起作用

在 ASP.Net Core 中我们这样做:

HttpContext.Response.Cookies.Append("key", <value> [, <options>]);

例如,如果我想在 cookie 中存储我的姓名 1 天:

HttpContext.Response.Cookies.Append("name", "Peyman", new Microsoft.AspNetCore.Http.CookieOptions  
             Expires = DateTime.Now.AddDays(1),
             // every othe options like path , ...
             );

【讨论】:

【参考方案3】:

<script type="text/javascript">
<!--
function WriteCookie()

    if(document.myform.customer.value=="")
    alert("Enter some value!");
    return;
    
    cookievalue=escape(document.myform.costomer.value)+";";
    document.cookie="name="+cookievalue;
    document.write("Setting Cookies:"+"name="+cookievalue);


//-->
</script>
</head>
<body>
<form name="myform" action="cook.html">
Enter name:<input type="text" name="customer"/>
<input type="button" value="set Cookie" onclick="WriteCookie();"/>
</form>
</body>
</html>

【讨论】:

以上是关于如何设置cookie值?的主要内容,如果未能解决你的问题,请参考以下文章

js中如何设置cookie的保存时间呢?

如何在expressjs中获取cookie值

java代码如何读取到浏览器中的cookie值

js 怎么重新设置cookie

如何增加 cookie 值?

关闭顶部通知栏