.NET Core 2.0 Решение проблем с удостоверением личности

Я настроил ключ пользователя IdentityRole как int вместо строки. и вот как я пытался добавить его в коллекцию сервисов.

Прежде всего мой пользователь приложения наследует от identityUser

public class ApplicationUser : IdentityUser<int>......

тогда в моей сервисной коллекции:

services.AddIdentity<ApplicationUser, IdentityRole<int>>(options => {
            // Password settings
            options.Password.RequireDigit = true;
            options.Password.RequiredLength = 8;.......`

В базовом контроллере у меня есть следующий конструктор:

public BaseApiController(RoleManager<IdentityRole> roleManager, UserManager<ApplicationUser> userManager, IConfiguration configuration, ILogger<BaseApiController> logger) : base(logger)
        {
            _roleManager = roleManager;
            _userManager = userManager;
            _configuration = configuration;

            _jsonSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented };
        }

Затем я использую базовый контроллер на одном из моих контроллеров mvc в виде:

 public class RegisterController : BaseApiController
    {
        private readonly IAccountService _accountService;

        public RegisterController(RoleManager<IdentityRole> roleManager, UserManager<ApplicationUser> userManager, IConfiguration configuration, ILogger<RegisterController> logger, IAccountService accountService) : base(roleManager, userManager, configuration, logger)
        {
            _accountService =  accountService;

        }

теперь, когда я бегу, используя swagger, я получаю следующую ошибку:

Произошло необработанное исключение при обработке запроса. Не удалось разрешить службу для типа Microsoft.AspNetCore.Identnty.RoleManager. При попытке активировать Myprog.Areas.Account.Controllers.RegisterController.

1 ответ

Решение

Базовый контроллер должен был иметь назначение в вызове, а затем выполнить его во всех реализациях:

public BaseApiController(RoleManager<IdentityRole<int>> roleManager, UserManager<ApplicationUser> userManager, IConfiguration configuration, ILogger<BaseApiController> logger) : base(logger)
Другие вопросы по тегам