在。net Core 3.1中,我们可以像这样在启动时创建角色:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider)
{
CreateRoles(serviceProvider).Wait;
}
private async Task CreateRoles(IServiceProvider serviceProvider)
{
var RoleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
.... //do your thing with the RoleManager instance.
}
然而,在。net 7(以及6)中,Configure方法不存在,我们可以从那里获得IServiceProvider的实例。
我如何在。net 7中做到这一点?
您必须创建一个作用域,然后从那里访问RoleManager<>
。
Program.cs
...
using var scope = app.Services.CreateScope();
using var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<IdentityRole>>();
...
app.Run();