2
我有一个问题与创建的HttpOnly饼干,我用下面的代码,以创造新的Cookie:问题用的HttpOnly饼干
//A.aspx
HttpCookie ht = new HttpCookie("www");
ht.Value = "www";
ht.Name = "www";
ht.HttpOnly = true;
ht.Expires = DateTime.Now.AddDays(1);
Response.AppendCookie(ht);
Response.Redirect("B.aspx");
//B.aspx
HttpCookie cookie = Request.Cookies["Allowed"];
HttpCookie htt = Request.Cookies["www"];
if (cookie != null)
{
Response.Write(cookie.HttpOnly);
Response.Write(htt.HttpOnly);
}
else
{
cookie = new HttpCookie("Allowed");
cookie.HttpOnly = true;
cookie.Value = "ping";
cookie.Expires = DateTime.Now.AddMinutes(2);
Response.Cookies.Add(cookie);
Response.Write(cookie.HttpOnly);
Response.Write(htt.HttpOnly);
}
的问题是,最终的结果总是:False
,虽然仅Http属性设置为True
。
任何人都可以解释我一个方法来解决这个问题吗?
Thanx
@Matti Virkkunen,但是如果我需要区分httpOnly和我的页面中的常规cookie,我该怎么办?我怎样才能访问JavaScript的httpOnly cookie,因为它是httpOnly?! – 2011-04-30 17:24:07
@Israa:你为什么需要在服务器端区分HttpOnly而不是HttpOnly?这没有任何意义。如果您真的需要这样做,请在服务器上保留一个HttpOnly的cookie名称列表,并使用它查找哪个cookie是哪个。 – 2011-04-30 17:41:44
@Matti Virkkunen:我需要这样做,因为我会在cookie中保存一个值,并检查这个cookie是否存在,如果是这样,页面将会重新存储一些数据,因此我需要知道它是否是HttpOnly,因为任何人都可以使用cookie同名并获取返回的数据。 – 2011-04-30 19:58:08