是否可以在ASP.NET中重定向期间设置cookie?

sma*_*man 5 asp.net response.redirect httpresponse httpcontext httpcookie

我正在使用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);
            }
        }
Run Code Online (Sandbox Code Playgroud)

以下是响应标头

  • X-AspNetMvc-Version - 2.0
  • 连接 - 关闭
  • 缓存控制 - 私有
  • 内容类型 - 文本/ html
  • 日期 - 2011年3月20日星期日03:48:04 GMT
  • 位置 - http:// localhost:3599/Home/Redirected
  • 服务器 - ASP.NET Development Server/9.0.0.0
  • X-AspNet-Version - 2.0.50727

ste*_*nar 6

谷歌搜索后似乎是的,在重定向响应中设置cookie可能会有问题,因为一些浏览器可能会忽略它.(这可能有一定道理,因为响应实际上是在告诉客户忽略资源并获取其他资源).

这已经在这里讨论过:在302重定向期间发送浏览器cookie

所以我会改变架构,允许页面被重定向到设置cookie.