Asp.net 如何篡改cookie

Asp.net 如何篡改cookie,asp.net,cookies,Asp.net,Cookies,我只是想知道如何篡改cookie(只是为了获取知识:-)。我创建了一个应用程序,并试图篡改cookie,但它不起作用 代码: protected void Button1_Click(object sender, EventArgs e) { if (Request.Cookies["myCookie"] != null) { Response.Redirect("Default2.aspx"); } el

我只是想知道如何篡改cookie(只是为了获取知识:-)。我创建了一个应用程序,并试图篡改cookie,但它不起作用

代码:

protected void Button1_Click(object sender, EventArgs e)
{
    if (Request.Cookies["myCookie"] != null)
    {
        Response.Redirect("Default2.aspx");

    }
    else
    {

        HttpCookie storeData = new HttpCookie("myCookie");
        storeData["name"] = "Arin";
        storeData["color"] = "Blue";
        storeData.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(storeData);
        Response.Redirect("Default2.aspx");
    }
}
protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie storeData = Request.Cookies["myCookie"];
    string myString= storeData["name"];
    TextBox1.Text = myString;
}
myCookie
name=Arin&color=Blue
localhost/
1024
1178851840
29993085
467738336
29992884
*
代码(Default2.aspx):

protected void Button1_Click(object sender, EventArgs e)
{
    if (Request.Cookies["myCookie"] != null)
    {
        Response.Redirect("Default2.aspx");

    }
    else
    {

        HttpCookie storeData = new HttpCookie("myCookie");
        storeData["name"] = "Arin";
        storeData["color"] = "Blue";
        storeData.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(storeData);
        Response.Redirect("Default2.aspx");
    }
}
protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie storeData = Request.Cookies["myCookie"];
    string myString= storeData["name"];
    TextBox1.Text = myString;
}
myCookie
name=Arin&color=Blue
localhost/
1024
1178851840
29993085
467738336
29992884
*
保存的Cookie内容:

protected void Button1_Click(object sender, EventArgs e)
{
    if (Request.Cookies["myCookie"] != null)
    {
        Response.Redirect("Default2.aspx");

    }
    else
    {

        HttpCookie storeData = new HttpCookie("myCookie");
        storeData["name"] = "Arin";
        storeData["color"] = "Blue";
        storeData.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(storeData);
        Response.Redirect("Default2.aspx");
    }
}
protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie storeData = Request.Cookies["myCookie"];
    string myString= storeData["name"];
    TextBox1.Text = myString;
}
myCookie
name=Arin&color=Blue
localhost/
1024
1178851840
29993085
467738336
29992884
*
当我运行代码时,它正在创建cookie。另外,下次它检查cookie是否存在:如果存在,则它将重定向到default2.aspx页面,并且我将在文本框中获取名称


但是,当我篡改cookie时——比方说当我将Arin更改为Arinzzzl时——它不会得到反映。应用程序认为不存在cookie名称“mycokie”,正在创建新cookie。因此,我不会在Default2.aspx中使用Arinzzz。我遗漏了什么吗?

如果你只是想玩cookies,请使用Firefox上的“添加编辑cookies”插件。

你真的会在硬盘上保存两个cookies吗?如果是这样,您应该能够比较2,看看有什么不同。

在两端设置一个断点,看看发生了什么,并让我们知道您是如何篡改cookie的。我写了一个简单的例子,就像你说的那样,用Firefox中的WebDeveloper插件篡改cookie(查看Cookies->编辑cookie),然后重新加载页面,并显示被篡改的数据

这个问题听起来应该通过更多的调试来解决。我猜您正在使用一个工具/方法篡改cookie,使其失效,或者您有一些程序逻辑,在您不希望cookie失效的情况下重新创建cookie

此外,您还可以通过另一个名为Live HTTP Headers的firefox插件查看cookie的内容在两个方向(请求和响应)上发送,以查看它是否存在未发送回服务器的问题。该插件将向您显示所有发送的请求和响应的标题,包括所有cookie


但正如他所说的那样。如果你只是手动更改它,为什么这不起作用?我没有使用任何工具,只是更改记事本中的值并保存它。我认为应用程序应该检查cookie是否存在,如果存在,则应该使用篡改的值。如果我错了,请更正我