如何从现有数据库中为IdentityServer4获取用户

eldios1981

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

我阅读了一些教程(特别是http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html),但我认为这始终适用于同一项目中的db。我的数据库不在同一个项目中。

在这种情况下,我了解了asp.net核心身份。但是我不完全了解那是什么。

有人可以告诉我如何在我的项目中绑定数据库,以及身份与应用程序User的作用是什么?

提前致谢

公斤743

本文与您的情况更相关。链接的链接用于配置数据,而不用于用户数据: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>();
}

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

posted @ 2021-03-26 13:57  dreamw  阅读(360)  评论(0编辑  收藏  举报