从其他应用程序获取Identity Server 4用户数据

时间:2018-09-24 07:09:35

标签: entity-framework asp.net-core .net-core identityserver4

在我的工作中,我们正在逐步用微服务体系结构代替整体式旧系统。我的任务是使用Asp.Net Core,Identity Server 4和Entity Framework *编写身份验证服务器。旧版系统已经具有身份验证,并且我们的截止日期临近,因此我们暂时将旧版系统用作后端。

如何设置Identity Server / Entity Framework以通过旧版系统提取登录信息?到目前为止,我发现的所有内容都涉及添加SQL Server之类的数据库。假设出于争论的目的,我无法直接从旧版系统使用的MySQL数据库中提取数据,但是通过JSON API轻松获取用户数据。

我已经编写了一个DbContext和使用它的IProfileService实现,但是我不确定如何在DbContext中实际拉用户,并且当我尝试从客户端登录时遇到此错误:

  

尚未为此DbContext配置数据库提供程序。可以通过重写DbContext.OnConfiguring方法或在应用程序服务提供程序上使用AddDbContext来配置提供程序。如果使用AddDbContext,则还请确保您的DbContext类型在其构造函数中接受DbContextOptions对象,并将其传递给DbContext的基本构造函数。

但是,我无法找到/弄清楚要在DbContext.OnConfiguring中放入什么来进行设置。我想我需要在某个地方实现IServiceProvider,但是找不到如何实现的任何细节。

*我们还没有结婚,所以欢迎提出更合适的建议。我们正在使用.Net Core。

1 个答案:

答案 0 :(得分:0)

这里的EF位似乎像是一条红鲱鱼。如果您正在使用旧版系统中的API,那么您根本不会使用EF。

如果使用IdentityServer4,则可以使用其EF实现进行配置和运营存储,然后使用现有系统公开的API来实现登录UI,IClaimsService等。为此,只需创建一个简单的客户端实现,该实现调用所述API并接受并返回您需要的任何模型。