Пример #1
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Result ChangePwd(ChangePwdModel model)
        {
            if (string.IsNullOrEmpty(model.OldPwd) || string.IsNullOrEmpty(model.NewPwd) || string.IsNullOrEmpty(model.ConfirmPwd))
            {
                return(new Result(300, "密码不允许为空!"));
            }

            if (model.NewPwd != model.ConfirmPwd)
            {
                return(new Result(300, "新密码和确认密码不相同!"));
            }

            // 校验原密码
            var query1 = Restrictions.Eq("Username", AdminHelper.Admin.Username);
            var query2 = Restrictions.Eq("Password", PasswordHelper.Crypt(model.OldPwd));
            var query  = Restrictions.And(query1, query2);
            var user   = dal.Get(query);

            if (user == null)
            {
                return(new Result(300, "原密码错误!"));
            }

            // 修改密码
            user.Password = PasswordHelper.Crypt(model.NewPwd);
            dal.Update(user);

            return(new Result(200, "密码修改成功!"));
        }
Пример #2
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public override Result Add(User model)
        {
            // 不允许选择顶级机构
            if (model.Dept != null && model.Dept.ID == 0)
            {
                return(new Result(300, "无法选择顶级机构!"));
            }

            // 判断用户名是否重复
            var query = Restrictions.Eq("Username", model.Username);
            var count = dal.Count(query);

            if (count > 0)
            {
                return(new Result(300, "用户名重复,添加失败!"));
            }

            // 密码
            if (string.IsNullOrEmpty(model.Password))
            {
                return(new Result(300, "密码不允许为空"));
            }

            model.ID       = 0;
            model.Password = PasswordHelper.Crypt(model.Password);
            model.Sort     = model.Sort == null ? 0 : model.Sort.Value;
            model.AddTime  = DateTime.Now;
            model.isAdmin  = false;
            model.Status   = 1;
            return(base.Add(model));
        }
Пример #3
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public LoginResult Login(LoginModel model)
        {
            var query1 = Restrictions.Eq("Username", model.Username);
            var query2 = Restrictions.Eq("Password", PasswordHelper.Crypt(model.Password));
            var query  = Restrictions.And(query1, query2);
            var user   = dal.Get(query);

            if (user == null)
            {
                LogHelper.Info("用户" + model.Username + "登录失败!", type: LogType.User);
                return(new LoginResult(300, "用户名或密码错误!"));
            }

            // 生成登录票据
            var cookie    = FormsAuthentication.GetAuthCookie(user.Username, false);
            var ticket    = FormsAuthentication.Decrypt(cookie.Value);
            var newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, user.ID.ToString()); // 将用户ID写入ticket

            cookie.Value = FormsAuthentication.Encrypt(newTicket);
            HttpContext.Current.Response.Cookies.Add(cookie);

            // 验证权限后将获得的用户信息写入Session
            HttpContext.Current.Session["__userID"] = user.ID.ToString();
            LogHelper.Info("用户" + model.Username + "登录成功!", type: LogType.User);
            return(new LoginResult(200, "登录成功!", user, cookie.Value));
        }
Пример #4
0
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public Result Add(UserEditParam p)
        {
            // 不允许选择顶级机构
            if (p.DeptID == 0)
            {
                return(new Result(300, "无法选择顶级机构!"));
            }

            // 判断用户名是否重复
            var query = Restrictions.Eq("Username", p.Username);
            var count = dal.Count(query);

            if (count > 0)
            {
                return(new Result(300, "用户名重复,添加失败!"));
            }

            var user = new User
            {
                ID       = 0,
                Username = p.Username,
                Password = PasswordHelper.Crypt(p.Password),
                Name     = p.Name,
                Dept     = p.DeptID == null ? null : new Dept {
                    ID = p.DeptID.Value
                },
                Role = p.RoleID == null ? null : new Role {
                    ID = p.RoleID.Value
                },
                Duty     = p.Duty,
                Phone    = p.Phone,
                Email    = p.Email,
                Birthday = p.Birthday,
                Address  = p.Address,
                Sort     = p.Sort == null ? 0 : p.Sort,
                Comment  = p.Comment,
                AddTime  = DateTime.Now,
                isAdmin  = false,
                Status   = 1
            };

            if (p.SexID != null)
            {
                user.Sex = new DicItem {
                    ID = p.SexID.Value
                };
            }
            var result = dal.Add(user);

            if (result)
            {
                return(new Result(200, "添加成功!"));
            }
            else
            {
                return(new Result(300, "添加失败!"));
            }
        }
Пример #5
0
        /// <summary>
        /// 重置用户密码
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public Result ResetPassword(int ID)
        {
            var initPassword = ConfigHelper.Get("UserInitPwd");

            if (initPassword == null)
            {
                initPassword = "******";
            }
            var model = dal.Get(ID);

            if (model == null)
            {
                return(new Result(300, "该用户不存在!"));
            }
            model.Password = PasswordHelper.Crypt(initPassword);
            dal.Edit(model);
            return(new Result(200, "密码重置成功!"));
        }