如何解决在ASP.NET Core Web API中重用ASP.NET MVC 5会话cookie
我有一个现有的ASP.NET MVC 5应用程序,该应用程序使用自定义身份验证方案和使用ASP.NET_SessionId
cookie存储状态的会话。
现在需要将React前端放在ASP.NET Core Web API的前面。有机会重用API中的某些服务代码。 showtopper是身份验证。
是否可以在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 example。
文档的某些部分:
可以将使用Katana Cookie身份验证中间件的ASP.NET 4.x应用程序配置为生成与ASP.NET Core Cookie身份验证中间件兼容的身份验证cookie。这样,您就可以通过几个步骤升级大型网站的单个应用程序,同时在整个网站上提供流畅的SSO体验。
,当应用程序使用Katana Cookie身份验证中间件时,它将在项目的Startup.Auth.cs文件中调用UseCookieAuthentication。默认情况下,使用Visual Studio 2013和更高版本创建的ASP.NET 4.x Web应用程序项目使用Katana Cookie身份验证中间件。尽管UseCookieAuthentication已过时且不支持ASP.NET Core应用程序,但在使用Katana Cookie身份验证中间件的ASP.NET 4.x应用程序中调用UseCookieAuthentication是有效的。
Katana Cookie身份验证可用于在应用之间重用Cookie。有关更多详细信息,请找到Share Authentication Cookie among app
的文档版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。