Asp.net Core 3.0 Identity 使用smtp賬戶確認和密碼恢復


當新建一個core項目后,使用identity基架后,確認郵件出現了錯誤,並不能正常使用。

建立文檔在這里

https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.1&tabs=visual-studio#scaffold-identity-into-an-empty-project

參考后發現,並沒有實現這個接口,需要自己完成,這是官方文檔,可是官方第三方key

https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/accconfirm?view=aspnetcore-3.1&tabs=visual-studio#require-email-confirmation

下面,使用一個自己的習慣吧,就是用自己的郵箱發送內容給用戶。

和官方文檔一樣,建立一個EmailSender

兄弟 們接代碼:

public class EmailSender : IEmailSender
    {

        public async Task SendEmailAsync(string email, string subject, string message)
        {

            // 設置郵件內容
            var mail = new MailMessage(
                new MailAddress("wangbin5542@163.com", "王彬"),
                new MailAddress(email)
                );
            mail.Subject = subject;
            mail.Body = message;
            mail.IsBodyHtml = true;
            mail.BodyEncoding = Encoding.UTF8;
            mail.Priority = MailPriority.High;//郵件優先級
                                              // 設置SMTP服務器
            var smtp = new SmtpClient("smtp.163.com", 25);
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential("wangbin5542@163.com", "*******“;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            await smtp.SendMailAsync(mail);

        }
    }

然后,我們將以下代碼添加到Startup.cs文件的 ConfigureServices 方法中:  

  • 將 EmailSender 添加為暫時性服務。
  • 注冊 AuthMessageSenderOptions 配置實例。
services.AddTransient<IEmailSender, EmailSender>();

  

好了,剩下的就是官方一至內容了。identity還是很方便的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM