如何从现有数据库中获取identityServer4的用户

eld*_*981 7 c# mysql asp.net-identity asp.net-core identityserver4

我试着理解我如何将存储在现有数据库(位于:localhost:3306)中的用户(电子邮件,密码,名字,姓氏和操作系统)绑定到我的identityserver4项目中,以便我可以使用这些信息登录用户或者将新用户注册到该数据库中?

我阅读了一些教程(特别是http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html),但我认为这对于同一个项目中的db总是如此.我的db不在同一个项目中.

在这个上下文中,我读到了关于asp.net核心身份.但我完全不明白这是如何相关的.

有人能告诉我如何在我的项目中绑定数据库以及身份与应用程序用户的角色等等?

提前致谢

kg7*_*743 5

这篇文章与您的情况更相关。您链接的是配置数据而不是用户数据:http : //docs.identityserver.io/en/release/quickstarts/6_aspnet_identity.html

简而言之,您希望通过 Asp.Net Core Identity 访问您的用户数据。你需要:

  • 将包含相关字段的用户类作为您的数据库
  • 创建一个 EntityFramework DbContext 类以将您的数据库映射到您的类
  • 使用 aspnet 核心身份注册您的用户类和 dbcontext
  • 告诉 IdentityServer 使用 AspNetIdentity

这就是您的 Startup ConfigureServices 方法在实施后的样子。此处未显示的是您需要创建的 DbContext 和 User 类。

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<YourUserStoreDbContextHere>(options =>
            options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

    services.AddIdentity<YourUserClassHere, YourRoleClassHereIfAny>()
        .AddEntityFrameworkStores<YourUserStoreDbContextHere>()
        .AddDefaultTokenProviders();

    services.AddIdentityServer()
        // Other config here
        .AddAspNetIdentity<YourUserClassHere>();
}
Run Code Online (Sandbox Code Playgroud)

有关配置用户类和 dbcontext 的详细信息,请参阅 AspNet Identity 上的文档:https ://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity