首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UserManager 6.0中获得标识UserManager

如何在UserManager 6.0中获得标识UserManager
EN

Stack Overflow用户
提问于 2022-02-28 11:29:28
回答 2查看 2.4K关注 0票数 1

新的.NET 6 Blazor模板已经废除了Startup.cs,并将所有内容浓缩成一个更加平淡的结构。

我以前曾使用Startup.csConfigure方法注入UserManager并为管理用户注入种子。

我怎样才能在新结构中做到同样的事情呢?

我还没有找到从任何地方获得UserManager的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-28 16:10:18

Program.cs中的以下更改允许像前面一样调用DBInitializer:

代码语言:javascript
复制
var scopeFactory = app.Services.GetRequiredService<IServiceScopeFactory>();
using (var scope = scopeFactory.CreateScope())
{
    var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<IdentityRole>>();
    var userManager = scope.ServiceProvider.GetRequiredService<UserManager<IdentityUser>>();
    ApplicationDbInitializer.Seed(userManager, roleManager);
}

供参考:

代码语言:javascript
复制
public static class ApplicationDbInitializer
{
    public static void Seed(UserManager<IdentityUser> userManager, RoleManager<IdentityRole> roleManager)
    {
        bool adminRoleReady = false;
        bool adminUserReady = false;

        if (roleManager.FindByNameAsync("Admin").Result == null)
        {
            var role = new IdentityRole()
            {
                Name = "Admin",
            };

            var res = roleManager.CreateAsync(role).Result;

            adminRoleReady = res.Succeeded;
        }

        // ... more ...
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-06-26 00:43:28

使用asp.net核心3.1创建项目,然后将其转换为6.0

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71294352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档