我有一個cookie用於保存用戶的用戶ID,但我很難用新值替換它。根據MSDN,我應該能夠簡單地覆蓋這個值,但它一直沒有工作。我在處理程序中執行登錄邏輯,並在用戶成功時將用戶傳遞到新的網頁。在HttpHandler中修改Cookie的值
public void ProcessRequest(HttpContext context)
{
User user = User.FindByUsernameAndPassword(
context.Request.Form["username"],
context.Request.Form["password"]);
context.Response.Cookies["user_id"].Value = user.ID.ToString();
context.Response.Redirect("/profile", true);
}
我第一次登錄,它工作得很好,但如果我嘗試擊中一個新的用戶ID的處理程序覆蓋我目前的cookie,它不更改cookie值和我繼續記錄作爲用戶時,我是當我打它。
其他頁面使用cookie登錄,但由於用戶標識未更改,它不會更改登錄用戶。
public User User { get; set; }
public override void Page_Load()
{
this.User = User.Find(int.Parse(Request.Cookies["user_id"].Value));
}
對不起,這實際上是一個錯字。如果沒有'.Value',代碼甚至不會編譯。 – 2011-06-10 03:07:20
我們是否需要在修改其值之前檢查cookie是否存在,換句話說,如果cookie不存在,它會發生錯誤,我們嘗試修改不存在的cookie的值? – sajanyamaha 2013-04-18 13:25:22
是的,如果cookie爲空,則無法訪問其Value屬性 – carlbenson 2013-04-18 14:59:01