使用 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
cannot 为 new.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,要么找出其他命名设置,所有相关主机都有共同的子域。
我有一个 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,
中的 cookieif (Request.Cookies["myKey"] != null)
{
var value = Request.Cookies["myKey"];
}
但 cookie 在 API 中不可用。 Request.Cookies["myKey"] return 空。
有谁知道为什么我在 API 中看不到 cookie 以及如何解决这个问题?
谢谢。
这种情况在规范中明确涵盖,site.aa.main.com
cannot 为 new.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,要么找出其他命名设置,所有相关主机都有共同的子域。