2017-03-17 203 views
3

我们想开发一个新的ASP.NET Web应用程序,如果它以某种方式可能我们想要采用ASP.NET Core。这个愿望的原因之一是,我们爱上了ASP.NET Core Identity ..但是一个问题是,身份依赖于实体框架,实体框架核心仍然有一些我们需要的未实现的功能(https://github.com/aspnet/EntityFramework/wiki/Roadmap) 。身份核心与实体框架6

从来就发现在其中作者提供可能性来使用实体框架6与ASP.NET核心(https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6)的制品。建议使用EF 6和ASP.NET Core的方式是,创建一个以.NET Framework 4.6.something为目标的新dll,并将所有EF-stuff放入其中。由于这种方法是我们一般的数据处理计划,因此需要以某种方式访问​​身份数据。还有许多专用的EF身份识别功能(例如AspNetCore.Identiy.EntityFrameworkCore),使授权/身份验证的东西更好,更简单,更快,更轻松 - 无论如何。

但是,使用不同的框架(或者更糟的是一个框架的不同版本)来访问同一个数据库,或者使用不同的技术在两个不同的地方访问两次相同的数据并不是那种清除干净的东西,我们认为的。

可能是我完全难住了,这是很清楚,但我不真的有现在一个干净的方式还是可以接受的方法针对此问题。

任何想法?

回答

4

如果我是你,我会看看Brock Allen的IdentityServer4。这里https://github.com/IdentityServer/IdentityServer4和这里http://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,本地,移动服务和水疗中心)的。

单点登录/登出在多个 应用类型的单点登录(输入和输出)。

访问控制用于各种类型的客户机 ,例如API的API的版本的访问令牌服务器到服务器,Web应用程序,SPA和 本地/移动应用程序。

联合网关支持外部身份提供商,如Azure Active Directory,Google,Facebook等。这样可以屏蔽您的应用程序 以了解如何连接到这些外部提供程序的详细信息。

专注于定制最重要的部分 - 的 许多方面IdentityServer可定制,以满足您的需求。由于 IdentityServer是一个框架,而不是盒装产品或SaaS,因此您可以编写代码来调整系统,使其适用于您的 方案。

+0

Thx快速回答!为了我的理解:你说,最好的办法是让身份的东西由其他人完成?你建议的解决方案比目前的身份“更完整”吗?我需要检查链接的内容,并且也会回答这个问题;) – Joshit

+0

不。IdentityServer4是一个“框架”,您可以使用它来编写您的身份和授权解决方案。如果你也喜欢,可以坚持使用ASP.Net Identity,并在其上构建。 – richardb

+0

Thx小费!在我解决了最初的问题之后,我会毫不犹豫地看看这个;)IdentityServer使用或可以使用Identity和/或Entity Framework。只要我没有找到解决这个问题的办法,就可以深入挖掘可能的实施方案。 – Joshit