在 ASP.NET 和 ASP.NET 核心应用程序中共享表单身份验证



我有一个 ASP.NET 应用程序"A",它具有表单身份验证并公开了WebAPI。现在我需要创建另一个 ASP.NET 核心应用程序"B",它将通过自己创建一个cookie(针对某些特定的硬编码用户(在内部调用应用程序"A",并正确调用应用程序"A"的 WebAPI 方法,就像用户登录一样。

如果两个站点位于同一域或子域中,则可以在 ASP.NET 和 ASP.NET Core 之间共享表单身份验证。 斯科特·汉塞尔曼(Scott Hanselman(在 https://www.hanselman.com/blog/SharingAuthorizationCookiesBetweenASPNET4xAndASPNETCore10.aspx 有一篇关于此的帖子。 以下是基本步骤:

  1. 将互操作包安装到应用程序中
    • ASP.NET 4.5:添加 Microsoft.Owin.Security.Interop NuGet 包
    • ASP.NET 核心:添加 Microsoft.AspNetCore.DataProtection.Extensions NuGet 包
  2. 在每个应用程序中设置CookieName,使它们相同
  3. 如果应用程序使用子域,请设置 CookieDomain 属性
  4. 将每个应用程序配置为使用相同的 AspNetTicketDataFormat cookie 格式

最新更新