ASP.NET Core 2.1 Identity - учетная запись контроллера - PullRequest
0 голосов
/ 30 августа 2018

Я проверяю личность основного пользователя и пытаюсь понять, как объект вводится в конструкторе Account Controller. Когда вызывается приведенный ниже конструктор, объекты уже создаются с помощью внедрения зависимостей. Это делается во время запуска класса "ConfigureServices" services.AddIdentity себя? не могли бы вы объяснить?

AccountController

public class AccountController : Controller
    {


        private readonly SignInManager<ApplicationUser> _signInManager;
        private readonly RoleManager<IdentityRole> _roleManager;

        public AccountController(SignInManager<ApplicationUser> signInManager, RoleManager<IdentityRole> roleManager)
        {
            _signInManager = signInManager;
            _roleManager = roleManager;
        }

Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity<IdentityUser, IdentityRole>()
                .AddEntityFrameworkStores<AppDbContext>()
                .AddDefaultTokenProviders();

1 Ответ

0 голосов
/ 30 августа 2018

Вы правы, метод AddIdentity отвечает за настройку служб. Вы можете убедиться в этом сами, если посмотрите на код , это небольшой фрагмент кода:

//etc...
services.TryAddScoped<UserManager<TUser>>();
services.TryAddScoped<SignInManager<TUser>>();
services.TryAddScoped<RoleManager<TRole>>();
//etc...
...