Пример #1
0
        public ActionResult SendEmailToResetEmail(AdminUser user)
        {
            ViewBag.gotoForm = 1;
            if (!ModelState.IsValid)
            {
                return(View(user));
            }

            var _userInDb = db.AdminUsers.SingleOrDefault(u => u.Username == user.Username);

            if (_userInDb == null)
            {
                ViewBag.Message = "Email is not found.";
            }
            else if (_userInDb != null)
            {
                var SecurityCode   = GenerateSecurityCode();
                var AdminResetPass = new AdminResetPassword();

                AdminResetPass.ResetCode   = SecurityCode;
                AdminResetPass.AdminUserId = Convert.ToInt32(_userInDb.Id);
                db.AdminResetPasswords.Add(AdminResetPass);
                db.SaveChanges();

                MailMessage mail       = new MailMessage();
                SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                var resetLink = "http://localhost:52629/AdminResetPassword/RetrivedPassword?SecurityCode=" + SecurityCode;

                // I need a valid SMTP account.
                var smtp_username = "******";
                var smtp_password = "******";

                mail.From = new MailAddress(smtp_username);
                mail.To.Add(_userInDb.Username);
                mail.Subject = "Navagis Internal Tool - Reset Password";
                mail.Body    = "<p>Dear " + _userInDb.FirstName + ", <br />" +
                               "Please use this link to reset your password:<br>" +
                               " <a href='" + resetLink + "'>" + resetLink + "</a><br /><br />" +
                               "Thank you.</p>";

                SmtpServer.Port                  = 587;
                SmtpServer.Credentials           = new System.Net.NetworkCredential(smtp_username, smtp_password);
                SmtpServer.EnableSsl             = true;
                SmtpServer.UseDefaultCredentials = false;

                //SmtpServer.Send(mail);
                ViewBag.gotoForm = 0;
            }

            return(View(user));
        }
Пример #2
0
        public ActionResult ResetPassword(int id, AdminResetPassword formData)
        {
            var user = Database.Session.Get <User>(id);

            if (user == null)
            {
                return(HttpNotFound());
            }
            formData.Username = user.Username;

            if (!ModelState.IsValid)
            {
                return(View(formData));
            }
            user.SetPassword(formData.Password);

            Database.Session.Update(user);
            Database.Session.Flush();
            Database.Session.Clear();
            return(RedirectToAction("index"));
        }
Пример #3
0
        public async Task <IHttpActionResult> AccountAdminResetPassword(AdminResetPassword model)
        {
            if (!ModelState.IsValid)
            {
                BadRequest("Model state is not valid");
            }

            // Check user user permission
            var userInfo      = GetUserInfo();
            var isSystemAdmin = _identityService.HasSystemAdminRole(userInfo);

            if (!isSystemAdmin)
            {
                Unauthorized("Unauthorized");
            }

            var user = await UserManager.FindByNameAsync(model.Email.TrimAndToLowerCase());

            if (user == null)
            {
                // Don't reveal that the user does not exist
                return(Ok());
            }

            var removePassword = UserManager.RemovePassword(user.Id);

            if (removePassword.Succeeded)
            {
                //Removed Password Success
                IdentityResult result = UserManager.AddPassword(user.Id, model.NewPassword);
                if (!result.Succeeded)
                {
                    return(GetErrorResult(result));
                }
            }

            return(Ok());
        }