net core 2.2 локальная настроенная учетная запись пользователя System.InvalidOperationException - PullRequest
0 голосов
/ 03 января 2019

Я создал проект в сетевом ядре 2.2 с локальной учетной записью пользователя и добавил все идентификационные файлы с помощью скаффолдинга.Я создал в папке модели два файла ApplicationUser.cs и ApplicationRole.cs.Затем я изменил startup.cs и applicationdbcontext, чтобы использовать новые атрибуты для пользователя и роли.Теперь мне нужно изменить все отношения со IdentityUser на ApplicationUser во всех классах в Areas/Identity.Я что-то упустил или это ожидаемое поведение?

Я получаю сообщение об ошибке перед изменением отношения с IdentityUser на ApplicationUser.

Не удается разрешить службу для типа 'Microsoft.AspNetCore.Identity.SignInManager`1 [Microsoft.AspNetCore.Identity.IdentityUser] 'при попытке активировать' Areas.Identity.Pages.Account.LogoutModel '.только для чтения SignInManager _signInManager;

до

private readonly SignInManager<ApplicationUser> _signInManager;

public class ApplicationRole : IdentityRole
{
    public string Description { get; set; }
    public string DisplayName { get; set; }
}

 public class ApplicationUser : IdentityUser
    {
        public string Name { get; set; }
        public string Surname { get; set; }
        public string Fullname { get; set; }
 }

startup.cs

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

ApplicationDbContext

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

Я хочу быть уверен, что яне пропустил что-то или сделал ошибку.

1 Ответ

0 голосов
/ 04 января 2019

Основываясь на показанном вами коде, основная проблема, которая стоит передо мной, состоит в том, что вы никогда не назначаете ничего для _signInManager.

class Foo // your class
{
    private readonly SignInManager<ApplicationUser> _signInManager;

    public Foo() // your constructor
    {
        _signInManager = ; //<-- this
    }
}

Что на данный момент показывает, что оно определено какnull.

...