我有一個頁面,用戶通過Web服務登錄到後端應用程序。 Web服務返回一個會話ID,我想要在cookie中存儲40分鐘,因爲後端應用程序在40分鐘後自動關閉會話。C#Cookie - 過期屬性不會設置
我的代碼寫的cookie:
private void SetCookie()
{
Response.Cookies.Add(new HttpCookie("Cookie_SessionID"));
Response.Cookies["Cookie_SessionID"].Value = ni.NicheSessionID;
Response.Cookies["Cookie_SessionID"].Expires = DateTime.Now.AddMinutes(40);
//.... after a few more things
Response.Redirect(returnUrl);
}
然後接收頁上我有這樣的:
private HttpCookie GetCookie()
{
HttpCookie cookie = Request.Cookies["Cookie_SessionID"];
if (cookie != null && cookie.Value != null)
{
return cookie;
}
return null;
}
出於某種原因,由GetCookie()
返回的cookie的總有0001-01-01 00:00:00
的Expires
值,即使當我在瀏覽器中查看Cookie時,它也具有正確的到期時間。
看了this其中規定過期的餅乾根本就沒有發送到服務器,我認爲有什麼可以發生的是,該cookie正在正確寫入但瀏覽器不發送到期日,因爲它實際上是不必要的?...
我的問題是,我想精確捕獲 - 該cookie已'過期',因此他們必須再次登錄 - 但我需要顯示一條消息,沿着「我知道你有已經登錄,但你需要再次做「類型的事情。
謝謝