【问题标题】:How to exclude a site which comes under a specific domain in a cookie c#如何在cookie c#中排除特定域下的站点
【发布时间】:2019-07-31 08:05:50
【问题描述】:

我们有一个set cookie 对应一个domain 作为.example.com,下面是sites,它在这个domain 之下。

login.example.com

articles.example.com

fitness.example.com

HP.example.com

media.example.com

我们已经设置了domain globally 并将覆盖所有站点。但是,我不想为最后一个站点设置 cookie,即media.example.com

我尝试将域设置为site URL,但它不起作用,因为所有站点都必须共享cookies,除了最后一个。

预期

我不希望 cookiemedia.example.com 共享并与其他网站共享。

【问题讨论】:

  • 你试过用明确的域名设置coockie吗?例如:Set-Cookie:名称=值;域 = HP.example.com EX:设置 Cookie:名称 = 值; domain=articles.example.com 也看看 HOST-ONLY cookie
  • 如果我们必须在站点之间共享一个 cookie,那么站点特定的域 cookie 就会出现问题。即从login.example.com 到其他站点的用户名。因为它们有依赖关系。

标签: c# asp.net .net cookies subdomain


【解决方案1】:

要不为 media.example.com 设置 cookie,我会这样做: 如果您在 aspx.cs 文件中设置 cookie:

string sHost = Request.Url.ToString();
if (!sHost.StartsWith("https://media.example.com"))
{
    //Write the code to set the cookies
}

如果您在类文件中设置 cookie:

string sHost = HttpContext.Current.Request.Url.ToString();
if (!sHost.StartsWith("https://media.example.com"))
{
   //Write the code to set the cookies
}

如果您不使用 https,请将其替换为 http。 我希望这能回答你的问题。

【讨论】:

  • 不,这不起作用,因为我想为域而不是为特定站点设置。假设我想在网站内共享数据,但这是行不通的。
  • 如果您设置 myCookie.Domain = .example.com 那么所有子域都将获得 cookie 集,并且 example.com 前面的点表示这是全局的。由于 if 语句不会为 media.example.come 设置 cookie,我认为它应该可以工作。我在一个有 1,484 个子域的项目上完成了这项工作(不需要排除域)。
  • 我没有media.example.com 的代码,它是一个单独的资产站点,只有资产(图像、JS 等)
  • 我想我没有完全复制你的问题。我的理解是:您不想为 media.example.com 设置 cookie。您没有 media.example.com 的代码隐藏文件,因此没有设置 cookie。 media.example.com 仅托管您的资源。我猜其他域有包含这些资源的 media.example.com 的链接。您有什么顾虑让全球 cookie 困扰您。我可能会遗漏一些东西,但是如果您不在 media.example.com 上设置 cookie,您的访问者可能只会获得他们访问您的其他域之一的其中一个,那么它是有效的,对吗?
  • 域名相同时会自动设置cookie。
猜你喜欢
  • 2017-08-31
  • 1970-01-01
  • 2019-05-22
  • 2011-02-19
  • 2022-11-28
  • 2020-07-14
  • 2013-07-20
  • 2018-04-21
  • 1970-01-01
相关资源
最近更新 更多