不正确的 Cookie 域 AspNetCore 3.0 Linux
Incorrect Cookie Domain AspNetCore 3.0 Linux
我最近尝试将 ASP.NET 核心 3.0 应用程序从 windows 服务器移动到 Linux 服务器。
该应用程序与另一个网站共享 cookie 身份验证,因此 cookie 域需要是通配符才能在 sub-domains 中共享,即 .example.com
这在 Windows 服务器上工作正常 https://sub.example.com 的 cookie 域设置为 .example.com
但是,当我登录 Linux 服务器时,出于某种原因,cookie 域设置为 sub-domain。例如,对于 https://sub-test.example.com,cookie 域是 .sub-test.example.com,这样就不会与 https://sub.example.com 共享,因此出现问题。
我检查了浏览器中的网络选项卡,set-cookie header 有 "domain=.sub-test.example.com",所以我确信这是服务器端问题。
在 Startup.cs 中,我已经对我想要的域通配符进行了硬编码,只是在 Linux.
上没有得到兑现
services.ConfigureApplicationCookie(opt =>
{
opt.Cookie.Domain = ".example.com";
}
不确定我还能尝试什么。
听起来像是反向代理的问题,它可能覆盖了您在那里设置的设置。看看这个 post: URL Rewrite keeps original host Location when reverse proxy 301 redirects
我最近尝试将 ASP.NET 核心 3.0 应用程序从 windows 服务器移动到 Linux 服务器。 该应用程序与另一个网站共享 cookie 身份验证,因此 cookie 域需要是通配符才能在 sub-domains 中共享,即 .example.com
这在 Windows 服务器上工作正常 https://sub.example.com 的 cookie 域设置为 .example.com
但是,当我登录 Linux 服务器时,出于某种原因,cookie 域设置为 sub-domain。例如,对于 https://sub-test.example.com,cookie 域是 .sub-test.example.com,这样就不会与 https://sub.example.com 共享,因此出现问题。
我检查了浏览器中的网络选项卡,set-cookie header 有 "domain=.sub-test.example.com",所以我确信这是服务器端问题。
在 Startup.cs 中,我已经对我想要的域通配符进行了硬编码,只是在 Linux.
上没有得到兑现services.ConfigureApplicationCookie(opt =>
{
opt.Cookie.Domain = ".example.com";
}
不确定我还能尝试什么。
听起来像是反向代理的问题,它可能覆盖了您在那里设置的设置。看看这个 post: URL Rewrite keeps original host Location when reverse proxy 301 redirects