¿Es posible establecer una cookie durante una redirección en ASP.NET?
-
27-10-2019 - |
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
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.