Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
        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"));
        }