public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService <WebStoreContext>(); DbInitializer.Initialize(context); var roleStore = new RoleStore <IdentityRole>(context); var roleManager = new RoleManager <IdentityRole>(roleStore, new IRoleValidator <IdentityRole>[] { }, new UpperInvariantLookupNormalizer(), new IdentityErrorDescriber(), null); if (!roleManager.RoleExistsAsync("User").Result) { var role = new IdentityRole("User"); var result = roleManager.CreateAsync(role).Result; } if (!roleManager.RoleExistsAsync("Administrator").Result) { var role = new IdentityRole("Administrator"); var result = roleManager.CreateAsync(role).Result; } var userStore = new UserStore <User>(context); var userManager = new UserManager <User>(userStore, new OptionsManager <IdentityOptions>( new OptionsFactory <IdentityOptions>( new IConfigureOptions <IdentityOptions>[] { }, new IPostConfigureOptions <IdentityOptions>[] { })), new PasswordHasher <User>(), new IUserValidator <User>[] { }, new IPasswordValidator <User>[] { }, new UpperInvariantLookupNormalizer(), new IdentityErrorDescriber(), null, null); if (userStore.FindByEmailAsync("*****@*****.**", CancellationToken.None).Result == null) { var user = new User() { UserName = "******", Email = "*****@*****.**" }; var result = userManager.CreateAsync(user, "admin").Result; if (result == IdentityResult.Success) { var roleResult = userManager.AddToRoleAsync(user, "Administrator").Result; } } } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occured while seeding the database."); } } host.Run(); }