Я предполагаю, что вы используете Identity Context, в таком случае вы можете просто добавить класс, который будет выполнять раздачу и запускать его из Startup.cs / Program.cs в зависимости от ваших обстоятельств.
In в этом случае YourContext
должен наследовать от IdentityDbContext<IdentityUser>
public class SeedUser
{
private readonly YourContext _context;
private readonly UserManager<IdentityUser> _userManager;
private readonly RoleManager<IdentityRole> _roleManager;
public SeedUser(YourContext context, UserManager<IdentityUser> userManager, RoleManager<IdentityRole> roleManager)
{
_context = context;
_userManager = userManager;
_roleManager = roleManager;
}
public async Task SeedAsync()
{
if (await _context.Users.CountAsync() == 0)
{
var adminUser = new IdentityUser("admin");
var nonadminUser = new IdentityUser("nonadmin");
await _userManager.CreateAsync(adminUser, "PWD");
await _userManager.CreateAsync(nonadminUser, "PWD");
const string administratorRole = "Administrator";
await _roleManager.CreateAsync(new IdentityRole(administratorRole));
await _userManager.AddToRoleAsync(adminUser, administratorRole);
}
}
}
Начальный код может быть запущен из Startup.cs
из метода
public void Configure(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory,
IEmailLoggerProvider emailLoggerProvider)
{
new SeedUser()
.SeedAsync()
.GetAwaiter()
.GetResult();
}