Asp.Net Core-防止同一域应用程序之间的会话Cookie冲突

时间:2019-04-23 07:56:44

标签: asp.net session asp.net-core cookies session-cookies

我正在使用ASP.Net Core 2.2。

默认情况下,会话cookie存储在特定域(例如:.AspNetCore.Session)上名为mydomain.com的cookie中。

就我而言,我在该域下有多个.net核心应用程序。 mydomain.com/Module1mydomain.com/Module2等...

在这种情况下,所有应用程序都为其会话共享相同的cookie。结果是一个应用程序尝试读取另一个应用程序的会话并在日志中生成警告:

  

取消保护会话Cookie时出错。   System.Security.Cryptography.CryptographicException:在密钥环中找不到密钥{...}。

尽管这只是一个警告,并且会话似乎在每个应用程序上都能正常工作,但我想知道处理这种情况的正确方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是更改每个应用程序的会话cookie名称:

Startup / Configure()中:

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