public ActionResult ResetPassword(ResetPasswordViewModel resetPassword) { if (ModelState.IsValid) { string email = resetPassword.email; string token = resetPassword.token; string password = resetPassword.Password; string today = DateTime.Today.ToString(); string resetPasswordString = email + today; string md5ResetPasswordHashed = Security.GenerateMd5("OMAR" + email.Length + resetPasswordString.Length + resetPasswordString); if (token == md5ResetPasswordHashed) { Member _member = rpMember.FindFirst(mm => mm.email == email); password = Security.GenerateMd5(password); _member.password = password; _member.reset_token = null; rpMember.Edit(_member); NotifyMember.ChangePassword(email); return(View("Success", new MessageView() { Message = "The password was successfully changed." })); } else { return(RedirectToAction("Index", "Home")); } } return(RedirectToAction("Index", "Home")); }
public ActionResult ChangePassword(ManageUserViewModel manage) { ViewBag.ReturnUrl = Url.Action("Index", "Home"); string username = User.Identity.Name; string oldPassword = Security.GenerateMd5(manage.OldPassword); bool isValid = IsValid(username, oldPassword); if (isValid) { Member _member = rpMember.FindFirst(mm => mm.username == username); string newPassword = Security.GenerateMd5(manage.NewPassword); _member.password = newPassword; rpMember.Edit(_member); NotifyMember.ChangePassword(_member.email); return(View("Success", new MessageView() { Message = "Your password has been updated successfully" })); } else { ModelState.AddModelError("ChangePassword", "The current password is incorrect, try again"); } // If we got this far, something failed, redisplay form return(View()); }
public ActionResult ResetPasswordRequest(ResetPasswordRequestViewModel resetPassword) { if (ModelState.IsValid) { string email = resetPassword.Email; Member _member = rpMember.FindFirst(m => m.email == email); if (_member != null) { string today = DateTime.Today.ToString(); string resetPasswordString = _member.email + today; string md5ResetPasswordHashed = Security.GenerateMd5("OMAR" + email.Length + resetPasswordString.Length + resetPasswordString); //Save Reset Token to DB _member.reset_token = md5ResetPasswordHashed; rpMember.Edit(_member); string resetPasswordUrl = Url.Action("ResetPassword", "Member", new { email = email, token = md5ResetPasswordHashed }, "http"); NotifyMember.ResetPassword(email, resetPasswordUrl); return(View("Success", new MessageView() { Message = "An e-mail has been sent to " + email + " to recover the password." })); } else { ModelState.AddModelError("EmailNotFound", "Email is not registered."); } } return(View()); }
public ActionResult Signup(SignupViewModel memberData) { try { if (ModelState.IsValid) { bool valid = ValidateSignup(memberData); if (!valid) { return(View()); } Member member = new Member(); member.username = memberData.UserName; member.email = memberData.Email; member.created_at = DateTime.Now; string hashedPass = Security.GenerateMd5(memberData.Password); member.password = hashedPass; member.is_active = false; member.confirm_token = Security.Encrypt("OMAR*" + member.username + "*" + member.created_at + "*" + memberData.Password, true); rpMember.Insert(member); //Send verification link to email string activationUrl = Url.Action("ConfirmSignup", "Member", new { token = member.confirm_token }, "http"); NotifyMember.AccountActivation(member.email, activationUrl); return(View("Success", new MessageView() { Message = "We sent a link to " + member.email + " to activate your account." })); } else { ModelState.AddModelError("", "There is an error in the input data, try again."); } } catch (Exception e) { } return(View()); }
public ActionResult ConfirmSignup(String token) { if (String.IsNullOrEmpty(token)) { return(RedirectToAction("Index", "Home")); } else { Member _member = rpMember.FindFirst(m => m.confirm_token == token && m.is_active == false); if (_member != null) { string decryptedText = Security.Decrypt(token, true); string password = decryptedText.Split('*')[3]; if (!string.IsNullOrEmpty(password)) { string public_id = Security.GenerateMd5(_member.id + "_" + _member.username); _member.is_active = true; _member.confirm_token = null; _member.public_id = public_id; rpMember.Edit(_member); NotifyMember.LoginInformation(_member.email, _member.username, password); Directory.CreateDirectory(Server.MapPath("~/App_Data") + "\\" + public_id); return(View("Success", new MessageView() { Message = "Your account has been activated successfully" })); } else { return(View("Success", new MessageView() { Message = "Please try this link later" })); } } } return(RedirectToAction("Index", "Home")); }