在Asp.Net Core 2中使用RoleManager播种角色

时间:2018-03-20 10:08:08

标签: c# asp.net-core dependency-injection

我一直在使用此链接播种我的数据库

Seeding Db with AspNet Core

现在播种时我也想访问UserManager<ApplicationUser>RoleManager<IdentityRole>

但是,由于在configure方法中调用了这个,我找不到使用的服务;

var RoleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();

var UserManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();

我如何访问此注入,以便我可以播种我的角色等?

1 个答案:

答案 0 :(得分:3)

为了给你一个提示,我在Startup.cs中使用它。我希望这对你有帮助。

for dlink in links.find("td",{"class": "download-cell"}):

您还需要在DbContext中继承此for dlink in links.find_all("td",{"class": "download-cell"}): 。如下面的示例代码:

// Inside the public void Configure(IApplicationBuilder app)

var scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();

var scope = scopeFactory.CreateScope();

var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<IdentityRole>>();

new UserRoleSeed(roleManager).Seed(); // Where UserRoleSeeding happens

在您的控制器中实现此功能时,我建议您使用类似于以下代码的依赖注入:

IdentityDbContext<ApplicationUser>