【问题标题】:Cookie added to Response.Cookies is also added to Request.Cookies. Any way to get to the original Request.Cookies?添加到 Response.Cookies 的 Cookie 也会添加到 Request.Cookies。有什么办法可以得到原始的 Request.Cookies?
【发布时间】:2011-11-29 01:56:02
【问题描述】:

如果我通过Response.Cookies.Add() 向响应中添加cookie,则该cookie 也会出现在Request.Cookies 中。

有什么方法可以在不提前缓存Request.Cookies 的情况下获取原始请求cookie(忽略新添加的响应cookie)?

another question 询问为什么会出现这种情况(我很清楚这一点)。我在问有没有办法解决它。

更新

作为一个非常粗略的过滤器,您似乎可以在Request.Cookies 中查找其Expires 等于default(DateTime) 的cookie。这是因为当浏览器在请求中序列化它们的 cookie 时,它​​们不包括它们的到期日期。

但是,如果没有 Expires,这不会消除意外添加到 Response 的任何 cookie。

【问题讨论】:

    标签: asp.net cookies


    【解决方案1】:

    Request.Headers["Cookie"] 包含浏览器发送的原始标头值。它是一个以分号分隔的键值对列表。例如:

    key1=value1; key2=value2
    

    可以将其解析为 Dictionary<string, string> 以找出请求的原始 cookie(忽略通过操作 Request.CookiesResponse.Cookies 添加或修改的任何内容)。

    (这些值是 URI 编码的,以避免任何 Bobby Tables 值包含等号或分号的情况。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 2013-09-16
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多