在ASP.NET核心Web API中重用ASP.NET MVC 5会话cookie



我有一个现有的ASP.NET MVC 5应用程序,它使用自定义身份验证方案和会话来使用ASP.NET_SessionIdcookie存储状态。

现在需要在ASP.NETCoreWebneneneba API前面放置一个React前端。有机会重用API中的一些服务代码。引人注目的是身份验证。

是否可以重用/共享React web应用程序中现有的cookie和身份验证方案?JWT和IdentityServer似乎是可靠的选择,但需要对现有系统进行重大重写。

据我所知,如果你想在ASP.NET 4.x和ASP.NET Core应用程序之间共享身份验证cookie,你需要重新构建ASP.NET核心cookie身份验证。

由于asp.net核心和asp.net使用不同的方式加密身份验证cookie,因此您应该让它们使用相同的方式加密cookie,以使令牌为asp.net和asp.net核心应用程序工作,并确保它们在同一域中。

有关如何将应用程序设置为在ASP.NET 4.x和ASP.NET Core应用程序之间共享cookie的更多详细信息,我建议您可以参考此MSFT示例。

文件的某些部分:

使用Katana Cookie身份验证中间件的ASP.NET 4.x应用程序可以配置为生成与ASP.NET Core Cookie身份验证Middleware兼容的身份验证Cookie。这允许分几个步骤升级大型网站的单个应用程序,同时在整个网站上提供流畅的SSO体验。

当应用程序使用Katana Cookie身份验证中间件时,它会在项目的Startup.Auth.cs文件中调用UseCookieAuthentication。默认情况下,使用Visual Studio 2013及更高版本创建的ASP.NET 4.x web应用程序项目使用Katana Cookie身份验证中间件。尽管UseCookieAuthentication已过时且不支持ASP.NET Core应用程序,但在使用Katana CookieAuthenticationMiddleware的ASP.NET 4.x应用程序中调用UseCookieAuthentication是有效的。

Katana Cookie验证可用于在应用程序之间重用Cookie。有关更多详细信息,请在应用中查找共享身份验证Cookie的文档

最新更新