Как использовать идентичность 2.2 и не использовать ILookupNormalizer на ApplicationUserManager - PullRequest
3 голосов
/ 29 апреля 2019

как я могу удалить любую инъекцию ILookupNormalizer в удостоверении core3 preview4?

Я использую личность 2.2 и не могу использовать ILookupNormalizer в ApplicationUserManager. Моя контрактура ApplicationUserManager:

public ApplicationUserManager(
            IApplicationUserStore store,
            IOptions<IdentityOptions> optionsAccessor,
            IPasswordHasher<TblUsers> passwordHasher,
            IEnumerable<IUserValidator<TblUsers>> userValidators,
            IEnumerable<IPasswordValidator<TblUsers>> passwordValidators,
            ILookupNormalizer keyNormalizer,
            IdentityErrorDescriber errors,
            IServiceProvider services,
            ILogger<ApplicationUserManager> logger,
            IHttpContextAccessor contextAccessor,
            IUsedPasswordsService usedPasswordsService)
            : base((UserStore<TblUsers, TblOrganizationChart, AbfaContext, int, TblUserClaim, TblUserOrganizationChart, TblUserLogin, TblUserToken, TblRoleClaim>)store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)

Когда я добавляю ILookupNormalizer на AddCustomServices, у меня появляется эта ошибка:

Метод 'NormalizeName' в типе 'Project.Core.Identity.CS.CustomNormalizers' из сборки 'Project.Core, версия = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null' не имеет реализации.

после удаления "services.AddScoped ();" У меня есть эта ошибка:

'Метод' NormalizeKey 'в типе' Project.Core.Identity.ApplicationUserManager 'из сборки' Project.Core, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null 'не имеет реализации.'

Мне не нужно использовать нормализатор.

Как это решить?

1 Ответ

3 голосов
/ 29 апреля 2019

Подпись ILookupNormalizer в ядре идентификации 3x отличается от 2x.Если вы хотите продолжить использовать свой старый проект и пока не хотите его обновлять (в соответствии с названием вашего вопроса), просто заблокируйте базовую версию своего решения с помощью файла global.json ,Сначала запустите команду dotnet --list-sdks, чтобы увидеть, какие версии установлены.Затем создайте новый в корне вашего решения, используя команду dotnet new globaljson --sdk-version 2.2.106.

dotnet --list-sdks
dotnet new globaljson --sdk-version 2.2.106
...