Edge と Firefox ではセッションが保持されるのに、Chrome と IE11 では保持されないという現象になり、はまったのでメモしておきます。
環境
- ASP.NET Core 2.2
解決方法
Startup.cs
の ConfigureServices
で、AddSession()
を以下のように行っていました。
services.AddSession();
これを公式サイトにあるように、以下のように変更すると、全てのブラウザでセッションが保持されるようになりました。
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.HttpOnly = true;
// Make the session cookie essential
options.Cookie.IsEssential = true;
});
IsEssential
を true
にしなければならないようです。
(既定値は false
)