如何设置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值?的主要内容,如果未能解决你的问题,请参考以下文章