小编Ant*_*hog的帖子

未注册名为“Default”的 IUserTwoFactorTokenProvider<TUser>

我正在开发一个 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

  1. .AddTokenProvider(TokenOptions.DefaultEmailProvider, typeof(EmailTokenProvider<UserAccount>))
  2. .AddTokenProvider<EmailTokenProvider<UserAccount>>(TokenOptions.DefaultEmailProvider)

但它们都在我的代码中的同一点产生相同的错误。但当我尝试时,我收到了一条有趣的消息:

services.AddIdentityCore<UserAccount>(
      options …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core

7
推荐指数
2
解决办法
6031
查看次数

标签 统计

asp.net-core ×1

asp.net-mvc ×1

c# ×1