我正在尝试了解Cookie。但有一点我无法理解。希望你能帮我。
我写了一段简短的代码:
using System;
using System.Web;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["Test2"] == null)
{
Response.Cookies["Test2"]["Address"] = "Home";
Response.Cookies["Test2"].Expires = DateTime.Now.AddSeconds(60);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Cookies["Test2"]["Address"] = "Work";
}
}
}
首先,我想检查是否有一个名为" Test2"的cookie。它创建一个名为" Test2"的cookie。它的失效日期是一分钟后创建的。
然后,我点击按钮,它传递if子句并将Address更改为Work。但是当我看到cookie的有效期已经过去了。
过期:浏览会话结束时
为什么这个到期日会改变?请你帮助我好吗?
答案 0 :(得分:3)
您正在尝试修改Cookie,创建新Cookie ,并且由于您尚未指定 CreateGrid = function () {
var grid = new OnDemandGrid({
collection: GridStore,
columns: [
{ field: "_id", label: "ID" },
{ field: "_SectionID", label: "SpecID" },
{ field: "_name", label: "Name" },
{ field: "_number", label: "Number" },
{ field: "_description", label: "Description" },
{ field: "_url", label: "URL" }
]
}, 'editGrid');
}
,因此会限于会话结束时。< / p>
您无法直接修改Cookie。相反,更改cookie 包括用新值创建一个新的cookie,然后发送 cookie到浏览器覆盖客户端上的旧版本。
此外:
如果您没有设置cookie的过期时间,则会创建cookie 它不存储在用户的硬盘上。相反,cookie是 作为用户会话信息的一部分进行维护。当用户 关闭浏览器,cookie被丢弃。
因此,您的选项要么不修改cookie值(使用某些其他机制,如DB),要么为每次修改指定不同的到期日期。