我有一个基于DNN(一堆DNN模块)的应用程序,并希望逐步将此应用程序迁移到普通的ASP.NET Core。 (远离DNN) 我只依赖于DNN用户管理和导航,其余的基本上都是普通的ASP.NET Web窗体。 (或更好:DNN中的Web用户控件)
计划是创建一个全新的应用程序(不同的子域),并首先将我的用户管理迁移到.NET Core Identity。用户将通过新应用程序登录,并且需要在迁移期间在Core App和DNN之间切换。我想使用新的基于身份的机制,并且必须让用户与基于DNN成员资格的表保持同步,直到我可以弃用最后一个DNN模块。
来自:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity 似乎身份创建了自己的cookie,与DNN完全不同。 有没有人知道一种创建共享cookie的方法,允许用户从旧应用程序移动到新应用程序而无需登录两次? 或者有更好的方法来实现这个功能吗?
更新: 做更多的研究,在这一点上,将这个项目分为两个阶段似乎更有意义: 1.使用MVC 5启动新应用程序(稳定性) 2.稍后将MVC 5应用程序迁移到.NET Core
在这种情况下,使用OWIN身份验证的MVC 5仍然存在问题。是否可以在MVC和DNN之间创建共享的身份验证cookie?
答案 0 :(得分:0)
对于有同样问题的人,我发现我想做的事情是不可能的。身份验证cookie的格式已经使用OWIN进行了更改,并且与之前的FormsAuthentication没有向后兼容性。
我能够使用相同的名称,MachineKey加密等创建一个OWIN cookie,但内容不同,DNN也无法识别。
我必须在迁移中添加额外的阶段。 1.使用MVC 5创建一个新应用程序,但使用旧表单身份验证 2.迁移完所有模块后,我将能够转移到OWIN 3.迁移到ASP.NET核心