尝试激活RegisterModel时无法解析IEmailSender类型的服务 [英] Unable to resolve service for type IEmailSender while attempting to activate RegisterModel

查看:105
本文介绍了尝试激活RegisterModel时无法解析IEmailSender类型的服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用身份,但遇到一个问题,即我制作了一个新的示例项目,并具有个人身份验证和支架身份 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 :

  1. 删除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屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆