Tôi có một trang mà người dùng đăng nhập vào một ứng dụng back-end thông qua một dịch vụ web. Dịch vụ web trả về ID phiên mà tôi muốn lưu trữ trong cookie trong 40 phút, sau 40 phút, ứng dụng back-end sẽ tự động đóng phiên.C# Cookie - Hết hạn tài sản sẽ không được thiết lập
Mã của tôi để viết 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);
}
Sau đó, trên trang tiếp nhận tôi có điều này:
private HttpCookie GetCookie()
{
HttpCookie cookie = Request.Cookies["Cookie_SessionID"];
if (cookie != null && cookie.Value != null)
{
return cookie;
}
return null;
}
Đối với một số lý do cookie được trả về bởi GetCookie()
luôn có một giá trị Expires
của 0001-01-01 00:00:00
, mặc dù khi tôi xem cookie trong trình duyệt, nó có thời gian hết hạn chính xác.
Sau khi đọc this trong đó nêu cookie hết hạn chỉ đơn giản là không được gửi đến máy chủ, tôi giả sử những gì có thể xảy ra là cookie đang được viết đúng nhưng trình duyệt không phải là gửi thời hạn sử dụng vì nó thực sự không cần thiết ? ...
Vấn đề của tôi là tôi muốn nắm bắt chính xác điều đó - cookie đã hết hạn và vì vậy họ phải đăng nhập lại - nhưng tôi cần hiển thị thông báo dọc theo dòng "Tôi biết bạn có đã đăng nhập nhưng bạn sẽ cần phải làm điều đó một lần nữa "loại điều.
Cảm ơn