【问题标题】:Email reset password not working, however account confirmation works .NetCore电子邮件重置密码不起作用,但帐户确认有效.NetCore
【发布时间】:2020-09-10 03:39:24
【问题描述】:

所以我按照这里的说明进行操作:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/accconfirm?view=aspnetcore-3.1&tabs=visual-studio

我的应用程序运行正常,并使用我设置的电子邮件服务发送了一封帐户确认电子邮件。

但是,如果我去重设密码,身份服务不会调用电子邮件服务来发送电子邮件指令。我究竟做错了什么?

身份服务如何知道如何使用电子邮件确认帐户但无法使用它重置密码?

为了上下文

 startup.cs


 // requires
 services.AddTransient<IEmailSender, EmailSender>();
 services.Configure<AuthMessageSenderOptions>(Configuration);


 EmailSender.cs

public class EmailSender:IEmailSender
{
    public EmailSender(IOptions<AuthMessageSenderOptions> optionsAccessor)
    {
        Options = optionsAccessor.Value;
    }

    public AuthMessageSenderOptions Options { get; } //set only via Secret Manager

    public Task SendEmailAsync(string email, string subject, string message)
    {
        return Execute(Options.SendGridKey, subject, message, email);
    }

    public Task Execute(string apiKey, string subject, string message, string email)
    {
        var client = new SendGridClient(apiKey);
        var msg = new SendGridMessage()
        {
            From = new EmailAddress("stackoverflow@blah.com", Options.SendGridUser),
            Subject = subject,
            PlainTextContent = message,
            HtmlContent = message
        };
        msg.AddTo(new EmailAddress(email));

        // Disable click tracking.
        // See https://sendgrid.com/docs/User_Guide/Settings/tracking.html
        msg.SetClickTracking(false, false);

        return client.SendEmailAsync(msg);
    }
}

【问题讨论】:

    标签: asp.net-core asp.net-core-identity


    【解决方案1】:

    我们遇到了同样的问题,发现在发送注册电子邮件时,没有发送密码重置电子邮件。在我们的例子中,这是因为AspNetUsers 表存在两个问题:

    1. 我们没有完成电子邮件确认步骤,将数据库中的EmailConfirmed bool 设置为True,并且
    2. 我们已将数据从早期版本的 ASP.NET Core 迁移过来,其中两个电子邮件字段 EmailNormalizedEmail 未设置并保留为 null

    一旦我们填充了缺失的电子邮件字段并运行确认步骤(或手动将标志更改为 True),密码重置电子邮件就会开始工作。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2015-06-05
      • 2016-12-22
      • 2013-06-12
      相关资源
      最近更新 更多