我有一个 ASP.NET 应用程序“A”,它具有表单身份验证并公开了 WebAPI。现在我需要创建另一个 ASP.NET Core 应用程序“B”,它将通过自己创建一个 cookie(对于某些特定的硬编码用户)在内部调用应用程序“A”并正确调用应用程序“A”的 WebAPI 方法,就像用户登录一样在。
1 回答
1
如果两个站点位于同一域或子域中,则可以在 ASP.NET 和 ASP.NET Core 之间共享表单身份验证。Scott Hanselman 在https://www.hanselman.com/blog/SharingAuthorizationCookiesBetweenASPNET4xAndASPNETCore10.aspx上有一篇关于此的帖子。以下是基本步骤:
- 将互操作包安装到您的应用程序中
- ASP.NET 4.5:添加 Microsoft.Owin.Security.Interop NuGet 包
- ASP.NET Core:添加 Microsoft.AspNetCore.DataProtection.Extensions NuGet 包
- 在每个应用程序中设置 CookieName,使它们相同
- 如果您的应用程序使用子域,请设置 CookieDomain 属性
- 将每个应用程序配置为使用相同的 AspNetTicketDataFormat cookie 格式
于 2020-03-19T19:50:51.643 回答