使用 URL 重定向跨多个域访问 HttpOnly cookie

Accessing HttpOnly cookies across multiple domain with URL redirection

我有一个 ASP.Net MCV 网站 (.net 4.6) (https://site.aa.main.com) and we have built a redirection to an Angular SAP (https://spa.aa.new.main.com). We also have a standalone API (.net core 3.1)(https://api.aa.new.main.com:5001) 来处理来自 SPA 的请求。

这里我需要在重定向之前在站点 1 中设置一个 cookie,然后我可以在 API.

中使用该 cookie

我在站点 1 中使用以下代码来设置此 cookie,

HttpCookie payidCookie = new HttpCookie("myKey", "myValue")
{
     Secure = true,
     HttpOnly = true,             
     Domain = ".new.main.com",
};

this.Response.Cookies.Add(payidCookie);

然后我有下面的代码来使用 API,

中的 cookie
if (Request.Cookies["myKey"] != null)
{
    var value = Request.Cookies["myKey"];
}

但 cookie 在 API 中不可用。 Request.Cookies["myKey"] return 空。

有谁知道为什么我在 API 中看不到 cookie 以及如何解决这个问题?

谢谢。

这种情况在规范中明确涵盖,site.aa.main.com cannotnew.main.com 设置 cookie:

The user agent will reject cookies unless the Domain attribute specifies a scope for the cookie that would include the origin server. For example, the user agent will accept a cookie with a Domain attribute of "example.com" or of "foo.example.com" from foo.example.com, but the user agent will not accept a cookie with a Domain attribute of "bar.example.com" or of "baz.foo.example.com".

您要么必须为 main.com 设置 cookie,要么找出其他命名设置,所有相关主机都有共同的子域。