尝试激活RegisterModel时无法解析IEmailSender类型的服务 [英] Unable to resolve service for type IEmailSender while attempting to activate RegisterModel
问题描述
我正在使用身份,但遇到一个问题,即我制作了一个新的示例项目,并具有个人身份验证和支架身份 InvalidOperationException:尝试激活"MASQ.Areas.Identity.Pages.Account.RegisterModel"时,无法解析类型为"Microsoft.AspNetCore.Identity.UI.Services.IEmailSender"的服务.
I'm using Identity and I have a problem that I make a new example project and with individual authentication and scaffold identity InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UI.Services.IEmailSender' while attempting to activate 'MASQ.Areas.Identity.Pages.Account.RegisterModel'.
推荐答案
有两种方法可以做到这一点:
There're two ways to do that :
- 删除
ConfigurureServices()
中的services.AddDefaultTokenProviders()
以禁用two-factor authentication (2FA)
:
// file: `Startup.cs` :
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
///.AddDefaultTokenProviders(); /// remove this line
如果要启用2FA
// file: `Startup.cs`
services.AddTransient<IEmailSender,YourEmailSender>();
services.AddTransient<IEmailSender,YourSmsSender>();
两者都应该起作用.
两者都应适用于ASP.NET Core 2.1.但是,从ASP.NET Core 3.0开始,第一种方法不再起作用.
Both should work for ASP.NET Core 2.1. However, as of ASP.NET Core 3.0, the first approach doesn't work any more.
这篇关于尝试激活RegisterModel时无法解析IEmailSender类型的服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!