Ejemplo n.º 1
0
        public async Task <IActionResult> ResetPassword(ResetPasswordViewModels resetPasswordViewModels)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByEmailAsync(resetPasswordViewModels.Email);

                if (user != null)
                {
                    var result = await userManager.ResetPasswordAsync(user, resetPasswordViewModels.Token, resetPasswordViewModels.Password);

                    if (result.Succeeded)
                    {
                        ViewBag.Title   = "Reset password successful";
                        ViewBag.Message = "You will be redirected to our homepage.";

                        return(View("Successful"));
                    }
                    ViewBag.Title   = "Reset password failed";
                    ViewBag.Message = "Process failed";
                    return(View("Successful"));
                }
                return(View("ResetPasswordConfirmation"));
            }
            return(View(resetPasswordViewModels));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ResetPassword(ResetPasswordViewModels model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    var result = await userManager.ResetPasswordAsync(user, model.Token, model.ConfirmPassword);

                    if (result.Succeeded)
                    {
                        return(View("ResetPasswordConfirmation"));
                    }
                    foreach (var error in result.Errors) //in case there are errors on the input
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                    return(View(model)); // this will re-render the page, but with the issues that are on the input
                }
                return(View("ResetPasswordConfirmation"));
            }
            return(View(model));
        }
Ejemplo n.º 3
0
        public void SendPasswordResetEmail(ResetPasswordViewModels resetPasswordViewModels)
        {
            // initializing message queue
            Message      message   = new Message();
            MessageQueue msMq      = null;
            const string queueName = @".\private$\TestQueue";

            try
            {
                // MailMessage class is present is System.Net.Mail namespace
                MailMessage mailMessage = new MailMessage("*****@*****.**", resetPasswordViewModels.Email);
                Guid        guid        = Guid.NewGuid();

                // StringBuilder class is present in System.Text namespace
                StringBuilder sbEmailBody = new StringBuilder();
                sbEmailBody.Append("Dear " + resetPasswordViewModels.UserName + ",<br/><br/>");
                sbEmailBody.Append("Please click on the following link to reset your password");
                sbEmailBody.Append("<br/>");
                sbEmailBody.Append(this.appSettings.ForgetLink + guid.ToString());
                sbEmailBody.Append("<br/><br/>");
                sbEmailBody.Append("<b>BridgeIt</b>");

                mailMessage.IsBodyHtml = true;

                mailMessage.Body    = sbEmailBody.ToString();
                mailMessage.Subject = "Reset Your Password";
                message.Body        = mailMessage;
                message.Recoverable = true;
                message.Formatter   = new BinaryMessageFormatter();
                SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);

                smtpClient.Credentials = new System.Net.NetworkCredential()
                {
                    UserName = "******",
                    Password = "******"
                };

                smtpClient.EnableSsl = true;


                // creating directory in msmq
                if (!MessageQueue.Exists(queueName))

                {
                    msMq = MessageQueue.Create(queueName);
                }
                else
                {
                    msMq = new MessageQueue(queueName);
                }
                // sending smtp client to the message queue
                try
                {
                    msMq.Send(message);
                }
                finally {
                    smtpClient.Send(mailMessage);
                    //closing the message queue services
                    msMq.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }