我正在开发一个 asp.net core mvc 项目(.net 5),但在与身份相关的事情上苦苦挣扎。
我有一个HedgehogUserAccount继承自: andIdentityUser的另外两个类(名称选择错误,我知道 - 当一切正常时我会更改它)。经过大量工作后,我成功地使迁移工作并且程序编译并运行,但是当我尝试注册 a 时,出现以下错误:HedgehogUserAccountCustomerAccountUserAccountUser
NotSupportedException: No IUserTwoFactorTokenProvider<TUser> named 'Default' is registered.
该错误来自我的注册代码中的第 90 行(请参阅下面粘贴的完整代码 - 它与脚手架注册页面几乎相同):
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
我的 Startup.cs 的相关(我认为)部分如下所示:
services.AddIdentity<HedgehogUserAccount, IdentityRole>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddDefaultUI();
services.AddIdentityCore<UserAccount>(
options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddDefaultUI();
services.AddIdentityCore<CustomerAccount>(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddDefaultUI();
Run Code Online (Sandbox Code Playgroud)
我在尝试注册我的UserManager课程时得到了这个代码。
我尝试过一些变体(替换)AddDefaultTokenProviders:
.AddTokenProvider(TokenOptions.DefaultEmailProvider, typeof(EmailTokenProvider<UserAccount>)).AddTokenProvider<EmailTokenProvider<UserAccount>>(TokenOptions.DefaultEmailProvider)但它们都在我的代码中的同一点产生相同的错误。但当我尝试时,我收到了一条有趣的消息:
services.AddIdentityCore<UserAccount>(
options …Run Code Online (Sandbox Code Playgroud)