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



我使用代码优先EF(通过迁移类管理的数据库(将我的项目作为.NET Core Web API项目启动。我的端点正常工作,但现在需要身份验证。

我已经按照此处的说明搭建了身份。我确保使用现有的数据库上下文搭建基架,然后运行迁移代码。 标识所需的表是在我的 SQL 本地数据库上创建的。

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

userManager.CreateAsync(user, ADMIN_PASSWORD).Result;

但是,我想在启动.cs配置函数中调用此类代码。如何用户管理器和角色管理器。

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

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

我不希望用户注册。我只想让管理员使用这个应用程序。

如何注入用户管理器?

真的,我只想创建一个默认管理员,所以如果这样做是错误的,那很好,但是我在哪里以及如何做到这一点?

我不知道这是否有区别,但目的是将 JWT 令牌与 Angular 应用程序一起使用。

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

至于获取已配置服务的实例,可以在配置方法中注入IServiceProvider,然后获取所需服务的实例

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

最新更新