Asp.Net Core - предотвращение конфликта файлов cookie сеанса между приложениями одного домена - PullRequest
0 голосов
/ 23 апреля 2019

Я использую ASP.Net Core 2.2.

По умолчанию файл cookie сеанса хранится в файле cookie с именем .AspNetCore.Session в определенном домене (например, mydomain.com).

В моем случае у меня есть несколько основных приложений .net в домене. mydomain.com/Module1, mydomain.com/Module2 и т. Д. *

В этом сценарии все приложения используют один и тот же файл cookie для своего сеанса. Следствием этого является то, что приложение пытается прочитать сеанс другого и генерирует предупреждение в журналах:

Ошибка при снятии защиты сессионного куки. System.Security.Cryptography.CryptographicException: ключ {...} не найден в наборе ключей.

Хотя это просто предупреждение, и сессия, кажется, работает нормально для каждого приложения, я хотел знать, как правильно справиться с этой ситуацией.

Thx.

1 Ответ

0 голосов
/ 23 апреля 2019

Решение, которое я нашел, - изменить имя файла cookie сеанса для каждого приложения:

In Startup / Configure():

app.UseSession(new SessionOptions() { Cookie = new CookieBuilder() { 
    Name = ".AspNetCore.Session.MyApp1"}});
...