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