Ejemplo n.º 1
0
        public async Task RequestPasswordReset(UserRequestPasswordResetModel resetModel)
        {
            var user = await _entityRepository.GetEntity <User>(x => x.Email == resetModel.Username || x.Username == resetModel.Username);

            //Just return if user is null, dont throw any exceptions as this could be used as indication wether user exists or not
            if (user == null)
            {
                return;
            }

            var passwordResetUrlWithKey = _verificationService.CreateVerificationUrl(resetModel.PasswordResetUrl, user, UserVerificationType.PasswordReset);
            var passwordResetMailModel  = new PasswordResetMailModel(user.FirstName, user.LastName, passwordResetUrlWithKey);
            var message = new MailMessage <PasswordResetMailModel>(user.Email, MailResources.PasswordResetMail_Subject, MailResources.PasswordResetMail_Body, passwordResetMailModel);

            await _mailService.SendMail(message);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ResetPassword(string Email)
        {
            var user = await Manager.FindByEmailAsync(Email);

            if (user == null)
            {
                return(StatusCode(404));
            }
            var token = await Manager.GeneratePasswordResetTokenAsync(user);

            string link      = $@"{(HttpContext.Request.IsHttps ? "https" : "http")}://{HttpContext.Request.Host}{Url.Action("ChangePassword", "Account", new {  Token = token, Magic = user.Id })}";
            var    mailmodel = new PasswordResetMailModel {
                user = user, link = link
            };
            var msg = EmailSender.HtmlEmailMesage("ResetPassword", mailmodel);
            await EmailSender.SendEmailAsync(user.Email, "Reset password", msg);

            return(Ok());
        }