实例化RoleManager以向数据库

时间:2016-09-12 14:17:05

标签: c# asp.net-identity asp.net-core-mvc

尝试在此之后向数据库添加角色:Creating Roles in Asp.net Identity MVC 5

和/或这个: Add role in ASP.NET Identity

我不想要基于声明的授权,只需要角色,所以我想使用Microsoft.AspNetCore.Identity.RoleManager创建一个角色。

以下代码:

    public static class InitializeDb
    {
        public static void Initialize(IServiceProvider services)
        {
            using (var context = new ApplicationDbContext(services.GetRequiredService<DbContextOptions<ApplicationDbContext>>()))
            {
                using (var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context)))
                {
                   ...
                }
            }
        }
    }

产生以下错误:

没有任何参数对应于&RoleManager.RoleManager所需的形式参数&roleValidators&#39; (IRoleStore,IEnumerable&gt;,ILookupNormalizer,IdentityErrorDescriber,ILogger&gt; ,IHttpContextAccessor)&#39; SmartNetWorker..NETCoreApp,Version = v1.0

显然我必须提供 roleValidators 参数...或?我错过了什么吗?

谷歌没有说什么。

1 个答案:

答案 0 :(得分:2)

尝试解决RoleManager

public static void Initialize(IServiceProvider services)
{
    using (var roleManager = services.GetRequiredService<RoleManager<IdentityRole>>())
    {
        ...
    }
}