tag net mvc asp asp.net asp.net-mvc cookies

asp.net - net - Las cookies de ASP MVC no persisten



forms asp net core (2)

Tengo una aplicación ASP MVC con un código aparentemente simple para guardar y recuperar las cookies, pero por alguna razón no persistirán. El código en el controlador es:

if (System.Web.HttpContext.Current.Response.Cookies["CountryPreference"] == null) { HttpCookie cookie = new HttpCookie("CountryPreference"); cookie.Value = country; cookie.Expires = DateTime.Now.AddYears(1); System.Web.HttpContext.Current.Response.Cookies.Add(cookie); }

Y para cargarlo de nuevo:

if (System.Web.HttpContext.Current.Request.Cookies["CountryPreference"] != null) { System.Web.HttpContext.Current.Request.Cookies["CountryPreference"].Expires = DateTime.Now.AddYears(1); data.Country = System.Web.HttpContext.Current.Request.Cookies["CountryPreference"].Value; }

Por algún motivo, ¿la cookie siempre es nula?


El problema radica en seguir el código:

if (System.Web.HttpContext.Current.Response.Cookies["CountryPreference"] == null)

Cuando intenta verificar la existencia de una cookie utilizando el objeto Response en lugar de Request, ASP.net crea automáticamente una cookie.

Consulte esta publicación detallada aquí: http://chwe.at/blog/post/2009/01/26/Done28099t-use-ResponseCookiesstring-to-check-if-a-cookie-exists!.aspx

Cita del artículo en caso de que el enlace vuelva a caer ...

La breve explicación, si no te gusta leer toda la historia

Si utiliza un código como "if (Response.Cookies [" mycookie "]! = Null) {...}", ASP.Net genera automáticamente una nueva cookie con el nombre "mycookie" en segundo plano y sobrescribe su cookie anterior. ¡Siempre use Request.Cookies-Collection para leer las cookies!

[ http://chwe.at/blog/post/2009/01/26/Done28099t-use-ResponseCookiesstring-to-check-if-a-cookie-exists!.aspx ]


En resumen, no use " Respuesta " para leer las cookies, use " Solicitud ".