即使在 .Net Core Identity 中将 RequireConfirmedEmail 设置为 false,也会发送确认电子邮件
Confirmation email is sent even when RequireConfirmedEmail is set to false in .Net Core Identiy
我正在我的 .net core 5.0 razor 页面应用程序中实施 .Net Core Identity。
我已设置身份以禁用电子邮件确认。
services.AddDefaultIdentity<ApplicationUser>(options =>
{
//Disable account confirmation.
options.SignIn.RequireConfirmedAccount = false;
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
从 UI 的角度来看,用户在没有电子邮件确认的情况下登录。所以,UI 工作正常。
但是确认邮件还是发送给了用户。
这是我注册电子邮件服务的方式:
services.AddTransient<IEmailSender, EmailSender>();
注册邮箱服务的原因是想给用户发送重置密码邮件。
我了解配置说明用户不必是确认用户即可登录和执行其他活动。
如何配置电子邮件服务使其不发送确认电子邮件但允许发送其他电子邮件?
您可以尝试将脚手架应用到add/generate注册的源代码中,如下所示。
查看RegisterModel
class中定义的OnPostAsync
handler方法,可以找到发送邮件的相关代码,修改或注释掉这部分代码即可达到你的要求。
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
我正在我的 .net core 5.0 razor 页面应用程序中实施 .Net Core Identity。
我已设置身份以禁用电子邮件确认。
services.AddDefaultIdentity<ApplicationUser>(options =>
{
//Disable account confirmation.
options.SignIn.RequireConfirmedAccount = false;
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
从 UI 的角度来看,用户在没有电子邮件确认的情况下登录。所以,UI 工作正常。
但是确认邮件还是发送给了用户。
这是我注册电子邮件服务的方式:
services.AddTransient<IEmailSender, EmailSender>();
注册邮箱服务的原因是想给用户发送重置密码邮件。
我了解配置说明用户不必是确认用户即可登录和执行其他活动。
如何配置电子邮件服务使其不发送确认电子邮件但允许发送其他电子邮件?
您可以尝试将脚手架应用到add/generate注册的源代码中,如下所示。
查看RegisterModel
class中定义的OnPostAsync
handler方法,可以找到发送邮件的相关代码,修改或注释掉这部分代码即可达到你的要求。
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");