una saber persistente net_sessionid net existe eliminar crear cookie como asp c# asp.net cookies

c# - saber - eliminar cookies asp net



Cookie pierde valor en ASP.net (9)

Tengo el siguiente código que establece una cookie:

string locale = ((DropDownList)this.LoginUser.FindControl("locale")).SelectedValue; HttpCookie cookie = new HttpCookie("localization",locale); cookie.Expires= DateTime.Now.AddYears(1); Response.Cookies.Set(cookie);

Sin embargo, cuando intento leer la cookie, el valor es nulo. La cookie existe. Nunca supero lo siguiente si el cheque:

if (Request.Cookies["localization"] != null && !string.IsNullOrEmpty(Request.Cookies["localization"].Value))

¿Ayuda?


¿Ha cansado la colección "Solicitud" en lugar de la colección "Respuesta"?

if (Request.Cookies["localization"] != null && !string.IsNullOrEmpty(Request.Cookies["localization"].Value))


Agregaría esto como un comentario a la respuesta de Chris Marisic, pero no tengo ese privilegio :-(

Además de lo que Chris dijo en su edición sobre la eliminación de cookies de la solicitud, para poder leer el valor de las cookies recién creadas en una devolución de datos que terminé haciendo

Private Sub SetPageSize(ByVal pageSize As Integer) '' Set cookie value to pageSize Dim pageSizeCookie As HttpCookie = New HttpCookie(pageSizeCookieName) With pageSizeCookie .Expires = Now.AddYears(100) .Value = pageSize.ToString End With '' Add to response to save it Me.Response.Cookies.Add(pageSizeCookie) '' Add to request so available for postback Me.Request.Cookies.Remove(pageSizeCookieName) Me.Request.Cookies.Add(pageSizeCookie) End Sub

Las líneas Request.Cookies.Remove y Request.Cookies.Add lo hacen funcionar en las devoluciones de datos


Creo que sé la respuesta.

Acaba de QUITAR el atributo de acción en su etiqueta <form> .

haz que se vea así: <form id="form1" runat="server">

en lugar de esto: <form id="form1" action="DisplayName.aspx" runat="server">

A continuación, debe utilizar Response.Redirect("DisplayName.aspx"); en tu código


El control se hace después de una publicación posterior? Si es así, debería leer la cookie de la colección Request en su lugar.

Las cookies se conservan en el navegador al agregarlas a Response.Cookies y se leen desde Request.Cookies.

Las cookies agregadas a Response solo se pueden leer si la página está en la misma solicitud.


La respuesta más probable se ve en esta publicación

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

Editar: Como nota, terminé escribiendo un software que necesitaba comprobar la existencia de cookies que ASP.NET crea una pesadilla debido a su API de cookies. Terminé escribiendo un proceso de conversión que toma las cookies de la solicitud y crea mi objeto de estado. Al final de la solicitud, vuelvo a traducir mi objeto de estado a cookies y las incluyo en la respuesta (si es necesario). Esto alivia tratar de descubrir si las cookies están en la respuesta, actualizarlas en su lugar, evitar la creación de cookies inútiles, etc.


Prueba este fragmento -

string locale = ((DropDownList)this.LoginUser.FindControl("locale")) .SelectedValue; HttpCookie myCookie = new HttpCookie("localization"); Response.Cookies.Add(myCookie); myCookie.Values.Add("locale", locale); Response.Cookies["localization"].Expires = DateTime.Now.AddYears(1);

y leerlo -

if (Request.Cookies["localization"] != null) { HttpCookie cookie = Request.Cookies["localization"]; string locale = cookie.Values["locale"].ToString(); }


Tuve un problema similar, no pude leer las cookies en la devolución de datos. El problema para mí fue que revisé la propiedad segura de la cookie en verdadero. Se dice que cuando se activa la propiedad de seguridad de la cookie, hace que la cookie se transmita solo si la conexión utiliza la capa de sockets seguros. No estoy seguro, sin embargo, de cómo pude ver la cookie en el navegador la primera vez, pero no en la devolución de datos, teniendo en cuenta que no estaba transmitiendo a través de SSL. De todos modos, convertir la cookie. Segura a falso, solucionó el problema y las cookies se leyeron en la devolución de datos.

Lo siento si esto no tiene que ver con su problema, quería compartir esto, porque pasé un tiempo buscando cómo resolverlo.


si está compilando en modo de depuración, active el rastreo de las páginas en cuestión y asegúrese de que la cookie se encuentre en la colección de solicitudes. Establezca el seguimiento en la directiva @page en el archivo aspx.


use Response.Cookies.Add (cookie); en lugar de Response.Cookies.Set (cookie);