【问题标题】:How to add a cookie to all subdomain URLs?如何将 cookie 添加到所有子域 URL?
【发布时间】:2022-02-14 17:01:52
【问题描述】:

有一个类似x.y.z.com的地址。

我想在所有包含 .y.z.com 的 URL 中设置一个名为 BREEZESESSION 的 cookie。 在他们的网址末尾。

(例如,我想在 x.y.z.comj.y.z.comu.y.z.com 中设置 BREEZESESSION,任何带有 的域。 y.z.com 在他们的末尾)

我试过这段代码,但它不起作用:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl);

var cc = new CookieContainer();

cc.Add(new Cookie("BREEZESESSION", "SomeValueHere", "/", "*.y.z.com"));
        
request.CookieContainer = cc;
        
var response = await request.GetResponseAsync();
        
var x = new StreamReader(response.GetResponseStream()).ReadToEnd();

【问题讨论】:

    标签: c# asp.net cookies


    【解决方案1】:

    从域中删除*

    new Cookie("BREEZESESSION", "SomeValueHere", "/", "y.z.com")
    

    MDN HTTP Cookies documentation 声明设置域包括子域。

    Domain 属性指定哪些主机可以接收 cookie。如果未指定,则该属性默认为设置 cookie 的同一主机,不包括子域。如果指定了域,则始终包含子域。因此,指定域比省略它的限制要小。但是,当子域需要共享有关用户的信息时,它会很有帮助。

    例如,如果您设置 Domain=mozilla.org,则 cookie 可以在 developer.mozilla.org 等子域上使用。

    【讨论】:

      猜你喜欢
      • 2013-10-01
      • 2016-01-07
      • 1970-01-01
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2021-09-09
      • 2018-03-26
      相关资源
      最近更新 更多