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