c# – 如何从identityServer4的现有数据库中获取用户
我试着理解我如何将存储在现有数据库(位于:localhost:3306)中的用户(电子邮件,密码,名字,姓氏和操作系统)绑定到我的identityserver4项目中,以便我可以使用这些信息登录用户或者将新用户注册到该数据库中?
我读了一些教程(特别是http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html),但我认为这对于同一个项目中的db总是如此.我的db不在同一个项目中.
在这个上下文中,我读到了关于asp.net核心身份.但我完全不明白这是如何相关的.
有人能告诉我如何在我的项目中绑定数据库以及身份与应用程序用户的角色等等?
提前致谢
解决方法:
本文与您的情况更相关.您链接的是配置数据而不是用户数据:
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:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity的详细信息,请参阅有关AspNet Identity的文档