如何在标识core3 Preview4中删除任何ILookupNormalizer注入?
我使用身份2.2,不能在ApplicationUserManager上使用ILookupNormalizer。 我的挛缩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)
当我在AddCustomServices上添加ILookupNormalizer时,出现此错误:
程序集“ Project.Core,版本= 1.0.0.0,文化=中性,PublicKeyToken = null”中类型为“ Project.Core.Identity.CS.CustomNormalizers”的方法“ NormalizeName”没有实现。
在删除“ services.AddScoped();”之后我有这个错误:
程序集'Project.Core,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中类型'Project.Core.Identity.ApplicationUserManager'的'方法'NormalizeKey'没有实现。'
我不需要使用Normalizer。
如何解决这个问题?
答案 0 :(得分:3)
Identity core 3 is different中ILookupNormalizer
的签名比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