Не могу создать новую роль в DotNet Core 2.1 - PullRequest
0 голосов
/ 03 декабря 2018

Я читал документацию по аутентификации ядра dotnet и пытался сделать несколько примеров.Я могу создавать новых пользователей, но столкнулся с проблемой создания новых ролей.Когда я вызвал RoleManager.CreateAsync, он не создает новую роль.

ApplicationContext Class:

  public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<string>, string>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {

        }
     }

startup.cs:

   services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration["AppSetting:DefaultConnection"]));

    services.AddIdentity<ApplicationUser, IdentityRole<string>>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

Мой репозиторий:

 private readonly UserManager<ApplicationUser> _userManager;
        private readonly SignInManager<ApplicationUser> _signManager;
        private readonly ApplicationDbContext _context;
        private readonly RoleManager<IdentityRole<string>> _roleManager;
        public AccountRespository(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signManager, ApplicationDbContext context, RoleManager<IdentityRole<string>> roleManager)
        {
            _signManager = signManager;
            _userManager = userManager;
            _context = context;
            _roleManager = roleManager;
        }

метод создания роли в репосте

public async Task CreateRoles(string roleName)
        {
            await _roleManager.CreateAsync(new IdentityRole() { Name = "Admin" });
        }

1 Ответ

0 голосов
/ 03 декабря 2018

Когда я вызвал метод CreateRole, контекст был удален.Я добавил метод create в интерфейс и вызвал его из контроллера.Теперь он работает как ожидалось.

...