ASP.NET Core FormsAuthentication Cookie

ASP .NET Core FormsAuthentication Cookie

我有几个 ASP.NET MVC 5 应用程序。所有应用程序都部署在公共域的子域上。单个应用程序负责用户登录,会话在所有子域之间共享,因为我们在所有应用程序中具有相同的 machineKey。

<authentication mode="Forms">
  <forms name="SSO" loginUrl="{loginUrl}" timeout="2880" />
</authentication>
<machineKey validationKey="{validationKey}" decryptionKey="{decryptionKey}" validation="SHA1" />

问题是现在我想使用 ASP.NET CORE 开发新的应用程序,但我一直无法弄清楚如何配置 ASP.NET CORE 应用程序以便它读取 auth cookie由 ASP.NET MVC 5 应用程序创建。是否可以不更改 ASP.NET MVC 5 应用程序?

您可以使用数据保护密钥提供程序。 在启动文件中配置数据保护存储,如下所示。 在您的 MVC5 应用程序中也使用相同的存储来保存您的 cookie。

services.AddDataProtection()
    .PersistKeysToFileSystem("{PATH TO COMMON KEY RING FOLDER}")
    .SetApplicationName("SharedCookieApp");

services.ConfigureApplicationCookie(options => {
options.Cookie.Name = ".AspNet.SharedCookie";
});