Pregunta

Estoy usando ASP.NET. Agrego o configure una cookie (dependiendo de si el HttpRequest Contiene una cookie con la clave especificada), e inmediatamente después llama Response.Redirect. La cookie no está configurada. ¿Es este comportamiento correcto? ¿Hay algo mutuamente excluyente sobre establecer una cookie durante una respuesta HTTP con un código de estado 302?

Aquí está la fuente:

        if (context.HttpContext.Request.Browser.Cookies)
        {
            var cookies = context.HttpContext.Request.Cookies;
            var stateCookie = new HttpCookie(SR.session, clientState.SessionId.ToString());
            if (cookies.AllKeys.Contains(SR.session))
            {
                context.HttpContext.Response.Cookies.Set(stateCookie);
            }
            else
            {
                context.HttpContext.Response.Cookies.Add(stateCookie);
            }
        }

Aquí están los encabezados de respuesta

  • Versión X-AspnetMVC-2.0
  • Conexión - Cerrar
  • Cache -Control - Privado
  • Tipo de contenido - Texto/HTML
  • Fecha - Sol, 20 de marzo de 2011 03:48:04 GMT
  • Ubicación - http: // localhost: 3599/home/redirigido
  • Servidor - ASP.NET Development Server/9.0.0.0
  • Versión X-Aspnet-2.0.50727
¿Fue útil?

Solución

Después de buscar un poco en Google, parece que sí, puede haber problemas para configurar la cookie en la respuesta de redirección, ya que algunos navegadores pueden ignorarlo. (Puede tener algún sentido, ya que la respuesta realmente le dice al cliente que ignore el recurso y obtenga algún otro recurso).

Esto ya se ha discutido aquí: Enviar galletas de navegador durante una redirección 302

Así que cambiaría la arquitectura de una manera que permita que la página sea redirigida a establecer la cookie.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top