public ActionResult ChangePassword(ChangePasswordModel model)
        {
            if (ModelState.IsValid)
            {
                MembershipCreateStatus tt = new MembershipCreateStatus();


                // 在某些出错情况下,ChangePassword 将引发异常,
                // 而不是返回 false。
                bool changePasswordSucceeded = false;
                try
                {
                    User currentUser = ManageService.UserService().GetUserByUsername(User.Identity.Name);
                    if (model.OldPassword.Equals(model.NewPassword))
                    {
                        ModelState.AddModelError("", "新密码不能设置和旧密码一样。");
                    }
                    else if (!currentUser.Password.Equals(UtilEncrypt.MD5Encoding(model.OldPassword)))
                    {
                        ModelState.AddModelError("", "您输入的旧密码不正确!");
                    }
                    else
                    {
                        changePasswordSucceeded = ManageService.UserService().ChangePassword(currentUser, model.OldPassword, model.NewPassword);
                        changePasswordSucceeded = true;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);;
                }

                if (changePasswordSucceeded)
                {
                    return(RedirectToAction("ChangePasswordSuccess"));
                }
                else
                {
                    ModelState.AddModelError("", "当前密码不正确或新密码无效。");
                }
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(View(model));
        }
示例#2
0
        public void TestMD5()
        {
            // 测试1:MD5加密-测试值:admin
            string md5Str = UtilEncrypt.MD5Encoding("admin");

            Assert.AreEqual("21232f297a57a5a743894a0e4a801fc3", md5Str);

            // 测试2:MD5加密-测试值:iloveu
            md5Str = UtilEncrypt.MD5Encoding("iloveu");
            Assert.AreEqual("edbd0effac3fcc98e725920a512881e0", md5Str);

            // 测试3:MD5加密加盐
            md5Str = UtilEncrypt.MD5Encoding("admin", "admin");
            Assert.AreEqual("ceb4f32325eda6142bd65215f4c0f371", md5Str);

            // 测试4:MD5加密16位
            md5Str = UtilEncrypt.MD5Encoding16Bit("iloveu");
            Assert.AreEqual("ac3fcc98e725920a", md5Str);
        }
示例#3
0
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="username">用户名称</param>
        /// <param name="password">密码</param>
        /// <param name="Email">邮箱地址</param>
        /// <param name="Cellphone">联系电话</param>
        /// <returns></returns>
        public int CreatUser(string UserName, string Password, string Email, string Cellphone)
        {
            //1.确认用户名和密码是否为空,如果为空,返回 -1
            if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password))
            {
                return(0);
            }

            //UNDONE:2.用户名是否无效【如含有特殊符号】
            //if (!IsNormalCharacter(UserName))
            //{
            //    return 0;
            //}

            //3.电子邮件地址是否已存在,如果存在,返回 7
            if (IsEmailExist(Email, null))
            {
                return(7);
            }

            //4.确认用户名称是否已经使用过,如果已经使用过,返回 6
            if (IsUsernameExist(UserName, null))
            {
                return(6);
            }
            else
            {
                User user = new User();
                user.Username = UserName;
                //5.密码需要进行加密,采用md5不可逆编码
                Password        = UtilEncrypt.MD5Encoding(Password);
                user.Password   = Password;
                user.Email      = Email;
                user.Cellphone  = Cellphone;
                user.LoginTimes = 1;
                user.CommitTime = DateTime.Now;
                user.UpdateTime = DateTime.Now;
                db.User.Add(user);
                db.SaveChanges();
            }
            return(0);
        }
示例#4
0
        /// <summary>
        /// 校验是否合法用户
        /// </summary>
        /// <param name="UserName">用户名</param>
        /// <param name="Password">密码</param>
        /// <returns></returns>
        public bool IsValidateUser(string UserName, string Password)
        {
            Init_Db();
            bool result;

            Password = UtilEncrypt.MD5Encoding(Password);
            int count = db.User.Where(e => e.Username.Equals(UserName) &&
                                      e.Password.Equals(Password)
                                      ).Count();

            if (count == 1)
            {
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
示例#5
0
 /// <summary>
 /// 修改用户密码
 /// </summary>
 /// <param name="OldPassword">旧密码</param>
 /// <param name="NewPassword">新密码</param>
 /// <returns></returns>
 public bool ChangePassword(User user, string OldPassword, string NewPassword)
 {
     try
     {
         NewPassword = UtilEncrypt.MD5Encoding(NewPassword);
         if (user.Password.Equals(NewPassword))
         {
             return(false);
         }
         else
         {
             user.Password = NewPassword;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(false);
     }
     return(true);
 }