在 MVC4 中向 ClaimsPrincipal 添加多个身份

Dav*_*mid 5 c# asp.net authentication claims-based-identity owin

在我的 MVC4 应用程序中,有两种登录方式;作为客户或后台管理员。

目前,如果您以其中任何一种身份登录,ClaimsPrincipal 将被替换为包含新登录的单一身份的全新的。目前不可能同时登录客户帐户和管理员帐户,这是我们现在的要求。

我觉得使用此处描述的 AddIdentity 方法向现有的 ClaimsPrincipal 添加新身份是有意义的:https: //msdn.microsoft.com/en-us/library/system.security.claims.claimsprincipal.addidentity( v=vs.110).aspx

然而,这并没有添加第二个身份。然后我找到了这篇文章:https://blogs.msdn.microsoft.com/mrochon/2017/06/23/claims-augmentation-post-token/

这部分我特别感兴趣:

从理论上讲,通过向 ClaimsPrincipal 添加新的 ClaimsIdentity 应该可以实现这一点。但是,ASP.NET 4 中的 OWIN 不会序列化新标识。另一种方法是修改现有的 ClaimsIdentity,如下所示

那么,如果在 ASP.NET 4 中不可能,为什么不呢?Microsoft 文档中哪里提到了这一点?如果我们迁移到 .NET Core,我们可以期望它能够工作吗?ASP.NET 4 中有解决此问题的方法吗?