Cześć, piszę aplikację w której potrzebuję admina do tworzenia kont użytkowników
using LogisticsAssistant.Web.Interfaces;
using Microsoft.AspNetCore.Identity;
namespace LogisticsAssistant.Web.Data
{
public class ApplicationDbInitializer : IApplicationDbInitializer
{
private readonly UserManager<ApplicationUser> _userManager;
public ApplicationDbInitializer(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
public async void Initialize()
{
var user = "[email protected]";
var password = "!Qwerty123";
if (await _userManager.FindByEmailAsync("[email protected]") == null)
{
await _userManager.CreateAsync(new ApplicationUser { UserName = user, Email = user }, password); // w tym miejscu wyrzuca wyjątek
await _userManager.AddToRoleAsync(await _userManager.FindByEmailAsync(user), "Admin");
}
}
}
}
public void ConfigureServices(IServiceCollection services)
{
....
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddScoped<IApplicationDbInitializer, ApplicationDbInitializer>();
.....
}
Wywołanie inicjalizacji jest w górnej części metody
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApplicationDbInitializer applicationDbInitializer)
{
....
applicationDbInitializer.Initialize();
....
}
Problemem jest wyjątek
'System.ObjectDisposedException: 'Cannot access a disposed object...'
Nie wiem w którym miejscu usuwam obiekt i nie mam do niego dostępu