我正在使用ASP.NET。我要么添加或设置一个cookie(取决于HttpRequest
是否包含具有指定密钥的cookie),然后立即调用Response.Redirect
。 cookie未设置。这是正确的行为吗?在具有302状态代码的http响应期间设置cookie是否相互排斥?
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);
}
}
答案 0 :(得分:6)
在谷歌搜索后似乎是的,在重定向响应中设置cookie可能会出现问题,因为一些浏览器可能会忽略它。 (这可能有一定道理,因为响应实际上是在告诉客户忽略资源并获取其他资源)。
此处已经讨论过:Sending browser cookies during a 302 redirect
所以我会改变架构,允许页面被重定向到设置cookie。