【问题标题】:Is it possible to set a cookie during a redirect in ASP.NET?在 ASP.NET 中重定向期间是否可以设置 cookie?
【发布时间】:2011-07-19 00:10:46
【问题描述】:

我正在使用 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);
            }
        }

这里是响应头

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

【问题讨论】:

标签: asp.net httpresponse httpcontext response.redirect httpcookie


【解决方案1】:

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

这里已经讨论过了:Sending browser cookies during a 302 redirect

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2013-11-25
    • 2019-07-20
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多