Я недавно пытался переместить приложение ASP. NET core 3.0 с сервера windows на сервер Linux. Приложение совместно использует аутентификацию cook ie с другим веб-сайтом, поэтому домен cook ie должен быть подстановочным символом для совместного использования между поддоменами, т.е. .example.com
. Это прекрасно работает на сервере Windows домен cook ie для https://sub.example.com устанавливается как .example.com
Однако, когда я захожу на сервер Linux, домен cook ie по какой-то причине получает установить с поддоменом. Например, для https://sub-test.example.com доменом cook ie является .sub-test.example.com, который затем не будет использоваться совместно с https://sub.example.com, поэтому возникает проблема.
Я проверил вкладку сети в браузере, и заголовок set-cook ie имеет "domain = .sub-test.example.com", поэтому я убежден, что это проблема на стороне сервера.
В Startup.cs я жестко запрограммировал подстановочный знак домена, который мне нужен, он просто не учитывается на Linux.
services.ConfigureApplicationCookie(opt =>
{
opt.Cookie.Domain = ".example.com";
}
Не уверен, что еще я могу попробовать.