新的.NET 6 Blazor模板已经废除了Startup.cs,并将所有内容浓缩成一个更加平淡的结构。
我以前曾使用Startup.cs的Configure方法注入UserManager并为管理用户注入种子。
我怎样才能在新结构中做到同样的事情呢?
我还没有找到从任何地方获得UserManager的方法。
发布于 2022-02-28 16:10:18
Program.cs中的以下更改允许像前面一样调用DBInitializer:
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);
}供参考:
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 ...
}
}发布于 2022-06-26 00:43:28
使用asp.net核心3.1创建项目,然后将其转换为6.0
https://stackoverflow.com/questions/71294352
复制相似问题