0

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

4

1 回答 1

1

如果两个站点位于同一域或子域中,则可以在 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 Core:添加 Microsoft.AspNetCore.DataProtection.Extensions NuGet 包
  2. 在每个应用程序中设置 CookieName,使它们相同
  3. 如果您的应用程序使用子域,请设置 CookieDomain 属性
  4. 将每个应用程序配置为使用相同的 AspNetTicketDataFormat cookie 格式
于 2020-03-19T19:50:51.643 回答