如何使用.Net Core 3身份验证创建管理员用户

时间:2020-06-29 22:26:05

标签: c# .net authentication core

我使用Code-First EF(通过迁移类管理的数据库)作为.New Core Web API项目开始了我的项目。我的端点正常工作,但现在需要身份验证。

我遵循instructions here拥有身份支架。我确保使用现有的数据库上下文来搭建支架,然后运行迁移代码。身份所需的表是在我的SQL本地数据库上创建的。

我的下一步是使用.Net API创建默认的管理员用户。从网上找到的几个来源来看,我可以通过UserManager(和RoleManager)类创建用户,如下所示:

userManager.CreateAsync(user, ADMIN_PASSWORD).Result;

但是,我想在Startup.cs Configure函数中调用此类代码。如何使用userManager和roleManager。

使用此行配置应用程序时似乎实现了依赖项注入: app.UseAuthorization();

在Configure类中。这就是将类注入控制器动作的方式吗?正确?但是首先,我需要创建一个默认管理员。

我不希望用户注册。我只希望管理员可以使用此应用。

如何注入用户管理器?

真的,我只想创建一个默认管理员,所以如果这种方式做错了,那很好,但是我在哪里以及如何去做?

我不知道这是否有所不同,但目的是在Angular应用程序中使用JWT令牌。

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确。但是创建Admin用户(或与此相关的任何用户)将是一次过程。所以我不认为创建用户代码将在startup.cs中。您可能必须为经理用户开发其他视图。或者,您可以简单地使用SQL脚本创建用户。

就获取已配置服务的实例而言,您可以在Configure方法中注入IServiceProvider,然后获取所需服务的实例

public void Configure IServiceProvider sp)
{
        var um =  sp.GetRequiredService<IUserManager>();

}