Tengo una página donde un usuario inicia sesión en una aplicación de back-end a través de un servicio web. El servicio web devuelve una identificación de sesión que deseo almacenar en una cookie durante 40 minutos, ya que después de 40 minutos, la aplicación de back-end cierra automáticamente la sesión.Cookie C#: la propiedad expira no se configurará
Mi código para escribir la 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);
}
A continuación, en la página de recepción tengo esto:
private HttpCookie GetCookie()
{
HttpCookie cookie = Request.Cookies["Cookie_SessionID"];
if (cookie != null && cookie.Value != null)
{
return cookie;
}
return null;
}
Por alguna razón la cookie devuelta por GetCookie()
siempre tiene un valor Expires
de 0001-01-01 00:00:00
, a pesar de que cuando veo las cookies en el navegador tiene el tiempo de caducidad correcto.
haber leído this que establece las galletas caducadas simplemente no se envían al servidor, supongo que lo que podría estar sucediendo es que la cookie está siendo escrito correctamente pero el navegador no es enviar la fecha de caducidad, puesto que en realidad es innecesaria ? ...
Mi problema es que quiero capturar precisamente eso: la cookie ha "caducado" y deben volver a iniciar sesión, pero necesito mostrar un mensaje del tipo "Sé que tienes Ya ha iniciado sesión, pero tendrá que volver a hacerlo "escriba algo".
Gracias