具有实体框架的标识核心 6.



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

我找到了一篇文章,其中作者提供了将实体框架 6 与 ASP.NET 核心 (https://learn.microsoft.com/en-us/aspnet/core/data/entity-framework-6) 一起使用的可能性。使用 EF 6 和 ASP.NET Core 的推荐方法是创建一个面向 .NET Framework 4.6.something 的新 dll,并将所有 EF 内容放入其中。由于这种方法是我们一般的数据处理计划,因此也需要以某种方式访问身份数据。并且有许多专门的EF函数用于Identity(例如AspNetCore.Identiy.EntityFrameworkCore),使授权/身份验证更好,更容易,更快,更方便 - 等等。

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

可能是我完全被难住了,这很清楚,但我现在真的没有一个干净的方法或可接受的方法来解决这个问题。

有什么想法吗?

如果我是你,我会看看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、本机、移动、服务和 SPA)。

单点登录/注销 多次登录(和注销) 应用程序类型。

API的访问控制 为各种类型的 API 颁发访问令牌 客户端数量,例如服务器到服务器、Web 应用程序、SPA 和 本机/移动应用程序。

联合网关对外部标识提供者(如 Azure)的支持 Active Directory,Google,Facebook等。这保护您的应用程序 从有关如何连接到这些外部提供程序的详细信息。

专注于定制 最重要的部分 – 许多方面 可以自定义身份服务器以满足您的需求。因为 IdentityServer 是一个框架,而不是盒装产品或 SaaS,您 可以编写代码以使您的系统适应您的 场景。

最新更新