Изменение типа IdentityUser в ASP.NET Core 2.1 - PullRequest
0 голосов
/ 19 мая 2018

Я хочу, чтобы у моего User был Guid в качестве первичного ключа, но когда я создаю свой собственный тип пользователя, мой веб-сайт выдает исключение при запуске.

Кто-нибудь знает, как изменить тип IdentityUser?

Я сделал это:

services.AddIdentity<MyUser, MyRole>()
    .AddEntityFrameworkStores<UBContext>()
    .AddDefaultUI()
    .AddDefaultTokenProviders();

Но когда моя программа запускается, я получаю эту ошибку:

InvalidOperationException: Нет службы для типа 'Microsoft.AspNetCore.Identity.UserManager`1 [Microsoft.AspNetCore.Identity.IdentityUser] 'зарегистрирован.

Имеет ли это какое-то отношение к тому факту, что интерфейс идентификации теперь находится в отдельной библиотеке и контроллерев этой библиотеке ожидается UserManager<IdentityUser>?

Как я могу это переопределить?

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Хорошо, так что нашли проблему_LoginPartial.cshtml внедряет

@inject SignInManager<IdentityUser>
@inject UserManager<IdentityUser>

, поэтому вам нужно убедиться, что они обновлены до

@inject SignInManager<MyUser>
@inject UserManager<MyUser>
0 голосов
/ 19 мая 2018

Вы должны расширить IdentityUser от вашего MyUser класса:

public class MyUser : IdentityUser
{
    public string FirstName { get; set; }

    public string LastName { get; set; }
}

Затем зарегистрировать новый класс пользователя:

services.AddIdentity<MyUser , MyRole>()

И, наконец,где ваш UserManager введен, добавьте свой собственный тип:

public HomeController(UserManager<MyUser> userManager) { }

...