Me estoy volviendo loco por esto. Puedo escribir en una cookie y luego leerla nuevamente. Pero en algún momento, quiero actualizar el valor que tiene. Cada vez que obtengo la cookie de nuevo, obtengo el valor inicial, no el actualizado. A continuación se muestra el código que uso para escribir/actualizar y leer de la cookie.No se puede actualizar la cookie en ASP.NET
private static HttpCookie WriteCookie(Guid siteId, string siteName)
{
var cookie = HttpContext.Current.Request.Cookies.Get("UserSettings");
if(cookie != null) {
cookie.Value = EncryptObject(new UserSettingsModel { SiteID = siteId, SiteName = siteName });
HttpContext.Current.Response.Cookies.Set(cookie);
}else {
cookie = new HttpCookie("UserSettings") { Path = "/", Expires = DateTime.Now.AddDays(1), Value = EncryptObject(new UserSettingsModel { SiteID = siteId, SiteName = siteName }) };
HttpContext.Current.Response.Cookies.Add(cookie);
}
return cookie;
}
public static UserSettingsModel GetUserSettings(string username = null)
{
var cookie = HttpContext.Current.Request.Cookies.Get("UserSettings");
if (cookie == null || string.IsNullOrEmpty(cookie.Value))
{
cookie = ResetUserSettings();
}
var userSettings = DecryptObject<UserSettingsModel>(cookie.Value);
if (userSettings != null)
{
var siteId = userSettings.SiteID;
var siteName = userSettings.SiteName;
return new UserSettingsModel { SiteID = siteId, SiteName = siteName };
}
throw new SecurityException("You have no site attached to your user. Contact an administrtor.");
}
GetUserSettings
siempre devuelve el valor de la cookie que fue creado inicialmente con. ¿Qué pasa?
EDIT:
intenté llamar WriteCookie directamente de un método en un controlador. La cookie ahora estaba configurada. Usualmente llamé a WriteCookie a través de una solicitud de Ajax. Ahora, ¿realmente tengo que escribir la cookie usando JavaScript, o puedo de alguna manera simplemente hacerlo usando WriteCookie?
Gracias!
¿Revisaste lo que realmente se envía con el violín? Mire la expiración y el camino en particular. – Oded
Estoy usando el navegador Chrome, y utilizando las herramientas integradas de desarrollo, puedo ver que el valor de la cookie nunca se actualiza. Me pregunto por qué – Andreas
Mire los encabezados de solicitud y respuesta para ver qué está pasando. – Oded