diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df64a14 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/IdentityByExamples/.vs +/IdentityByExamples/IdentityByExamples/obj +/IdentityByExamples/IdentityByExamples/bin +/IdentityByExamples/EmailService/obj +/IdentityByExamples/EmailService/bin diff --git a/IdentityByExamples/EmailService/EmailConfiguration.cs b/IdentityByExamples/EmailService/EmailConfiguration.cs new file mode 100644 index 0000000..159d786 --- /dev/null +++ b/IdentityByExamples/EmailService/EmailConfiguration.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace EmailService +{ + public class EmailConfiguration + { + public string From { get; set; } + public string SmtpServer { get; set; } + public int Port { get; set; } + public string UserName { get; set; } + public string Password { get; set; } + } +} diff --git a/IdentityByExamples/EmailService/EmailSender.cs b/IdentityByExamples/EmailService/EmailSender.cs new file mode 100644 index 0000000..010c99e --- /dev/null +++ b/IdentityByExamples/EmailService/EmailSender.cs @@ -0,0 +1,111 @@ +using MailKit.Net.Smtp; +using MimeKit; +using System; +using System.IO; +using System.Linq; +using System.Threading.Tasks; + +namespace EmailService +{ + public class EmailSender : IEmailSender + { + private readonly EmailConfiguration _emailConfig; + + public EmailSender(EmailConfiguration emailConfig) + { + _emailConfig = emailConfig; + } + + public void SendEmail(Message message) + { + var emailMessage = CreateEmailMessage(message); + + Send(emailMessage); + } + + public async Task SendEmailAsync(Message message) + { + var mailMessage = CreateEmailMessage(message); + + await SendAsync(mailMessage); + } + + private MimeMessage CreateEmailMessage(Message message) + { + var emailMessage = new MimeMessage(); + emailMessage.From.Add(new MailboxAddress(_emailConfig.From)); + emailMessage.To.AddRange(message.To); + emailMessage.Subject = message.Subject; + + var bodyBuilder = new BodyBuilder { HtmlBody = string.Format("
+ Thank you for confirming your email. +
++ The link has been sent, please check your email to reset your password. +
\ No newline at end of file diff --git a/IdentityByExamples/IdentityByExamples/Views/Account/Login.cshtml b/IdentityByExamples/IdentityByExamples/Views/Account/Login.cshtml new file mode 100644 index 0000000..de1286d --- /dev/null +++ b/IdentityByExamples/IdentityByExamples/Views/Account/Login.cshtml @@ -0,0 +1,36 @@ +@model IdentityByExamples.Models.UserLoginModel + ++ Your password has been reset. Please click here to log in. +
\ No newline at end of file diff --git a/IdentityByExamples/IdentityByExamples/Views/Account/SuccessRegistration.cshtml b/IdentityByExamples/IdentityByExamples/Views/Account/SuccessRegistration.cshtml new file mode 100644 index 0000000..28a0df4 --- /dev/null +++ b/IdentityByExamples/IdentityByExamples/Views/Account/SuccessRegistration.cshtml @@ -0,0 +1,5 @@ ++ Please check your email for the verification action. +
\ No newline at end of file diff --git a/IdentityByExamples/IdentityByExamples/Views/Home/Employees.cshtml b/IdentityByExamples/IdentityByExamples/Views/Home/Employees.cshtml index 7ec69d3..402fc58 100644 --- a/IdentityByExamples/IdentityByExamples/Views/Home/Employees.cshtml +++ b/IdentityByExamples/IdentityByExamples/Views/Home/Employees.cshtml @@ -51,3 +51,11 @@ } + +
- Request ID: @Model.RequestId
-
- Swapping to Development environment will display more detailed information about the error that occurred. -
-- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -
diff --git a/IdentityByExamples/IdentityByExamples/Views/Shared/_Layout.cshtml b/IdentityByExamples/IdentityByExamples/Views/Shared/_Layout.cshtml index dc736f2..c905824 100644 --- a/IdentityByExamples/IdentityByExamples/Views/Shared/_Layout.cshtml +++ b/IdentityByExamples/IdentityByExamples/Views/Shared/_Layout.cshtml @@ -17,6 +17,7 @@