我已关注本文,以在具有ASP.Net Core身份的ASP.Net Core 2.2 MVC应用程序与具有ASP.Net身份的ASP.Net Framework 4.6 MVC应用程序之间实现cookie共享:
https://docs.microsoft.com/en-us/aspnet/core/security/cookie-sharing?view=aspnetcore-2.2
文章提到必须使用一个公共用户数据库:
“ 使用公共用户数据库
确认每个应用程序的标识系统都指向相同的用户数据库。否则,当身份系统尝试将身份验证cookie中的信息与其数据库中的信息进行匹配时,就会在运行时产生故障。”
我注意到,ASP.Net核心标识表(AspNetUsers表等)与ASP.Net(标准)标识表之间存在一些轻微的模式差异。
我正在使用的“公共用户数据库”包含Identity表的ASP.Net Core版本。
我无法使cookie共享正常工作,因为该表“ AspNetUsers”表的先前版本的一部分“ LockOutEndDateUtc”列已不在该表中,特别是该列现在是“ LockoutEnd”。
由于缺少LockOutEndDateUtc列,因此从ASP.Net 4.6应用程序调用Authentication.User.Identity.GetUserId()时引发错误,该错误指向包含ASP.Net Core版本的公共用户数据库。身份表。基于此,我想知道在ASP.Net 4.6和ASP.Net Core 2.2应用程序之间共享cookie时是否还会存在其他问题。
还有其他人遇到这个问题吗?和/或最好的进行方式是什么?
(我可以将列添加到AspNetUsers表中,以解决问题;但是,我认为有一种适当/通用的方法可以解决此问题。)