身份核心与实体框架6

时间:2017-03-17 14:29:59

标签: c# entity-framework asp.net-core asp.net-identity .net-core

我们想开发一个新的ASP.NET Web应用程序,如果它可能以某种方式我们想要使用ASP.NET Core。这个愿望的原因之一是,我们爱上了ASP.NET核心身份。但是一个问题是,身份依赖于实体框架和实体框架核心仍然有一些我们需要的未实现的功能({{ 3}})。

我发现了一篇文章,其中作者提供了将Entity Framework 6与ASP.NET Core(https://github.com/aspnet/EntityFramework/wiki/Roadmap)一起使用的可能性。使用EF 6和ASP.NET Core的推荐方法是,创建一个针对.NET Framework 4.6.something的新dll,并将所有EF内容放入其中。由于这种方法通常是我们的数据处理计划,因此需要以某种方式访问​​Identity-Data。并且有许多用于身份的专用EF函数(例如AspNetCore.Identiy.EntityFrameworkCore),使授权/身份验证更好,更容易,更快,更方便 - 无论如何。

但是使用不同的框架(或者更糟糕的不同版本的一个框架)来访问同一个数据库,或者使用不同的技术在两个不同的地方访问相同的数据两次并不是那种擦干净的清单,我们想到的

可能我感到非常难过,这很清楚,但我现在还没有一个干净的方法或可接受的方法解决这个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

如果我是你,我会看看Brock Allen的IdentityServer4。这里有https://github.com/IdentityServer/IdentityServer4http://docs.identityserver.io/en/release/文档。

你甚至会在msdn网站上找到一些推荐它的博客。 https://blogs.msdn.microsoft.com/webdev/2016/09/19/introducing-identityserver4-for-authentication-and-access-control-in-asp-net-core/

我认为你会发现它更完整的解决方案。

引用MSDN博客;

  

IdentityServer4允许在您的网站中构建以下功能   应用:

     

身份验证即服务集中登录逻辑和工作流程   所有应用程序(Web,本机,移动,服务和SPA)。

     

单点登录/注销多个单点登录(和退出)   应用类型。

     

API的访问控制为各种类型的API发出访问令牌   客户,例如服务器到服务器,Web应用程序,SPA和   原生/移动应用程序。

     

联合网关支持Azure等外部身份提供商   Active Directory,Google,Facebook等。这可以保护您的应用程序   从如何连接到这些外部提供商的细节。

     

专注于定制最重要的部分 - 许多方面   IdentityServer可以根据您的需求进行定制。以来   IdentityServer是一个框架,而不是盒装产品或SaaS   可以编写代码来使系统适应你的方式   场景。