コード例 #1
0
        public IActionResult PostLogin(LoginViewModel request)
        {
            ViewBag.Title = "Login";
            var passwordHashed = MD5Helper.Encode(request.Password);
            var user           = this.BaseDBRepository.UserRepository.GetAll()
                                 .FirstOrDefault(x => x.UserName.ToLower().Equals(request.UserName.ToLower()) &&
                                                 x.Password == passwordHashed);

            if (user == null)
            {
                request.IsError      = true;
                request.ErrorMessage = "Sai tên đăng nhập hoặc mật khẩu.";
                return(View("Login", request));
            }

            if (user.UserStatusId == UserStatusEnums.Deactive)
            {
                request.ErrorMessage = "Tài khoản bị khóa.";
                request.IsError      = true;
                return(View("Login", request));
            }

            var token = UserLogin(user, request.IsRememberMe);

            if (string.IsNullOrEmpty(token))
            {
                request.IsError      = true;
                request.ErrorMessage = "Đã xảy ra lỗi. Vui lòng thử lại.";
                return(View("Login", request));
            }
            return(Redirect(string.IsNullOrEmpty(request.RedirectUrl) ? "/" : request.RedirectUrl));
        }
コード例 #2
0
        public OperationResult SeCustomerPwd(RequestOperation <CustomerPwdData> request)
        {
            var result = new OperationResult();

            try
            {
                request.Body.Password = MD5Helper.Encode(request.Body.Password);

                var rows = CustomerDA.SetCustomerPwd(request);

                if (rows == 0)
                {
                    result.ErrCode = 1;
                    result.Message = "设置失败";
                }
                else
                {
                    result.ErrCode = 0;
                    result.Message = "ok";
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("SeCustomerPwd", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
コード例 #3
0
        public OperationResult <CustomerLoginData> LoginByAccount(RequestOperation <UserLoginData> request)
        {
            var result = new OperationResult <CustomerLoginData>();

            try
            {
                request.Body.Password = MD5Helper.Encode(request.Body.Password);
                result.Body           = CustomerDA.LoginByAccount(request.Body);

                if (result.Body == null)
                {
                    result.ErrCode = 1;
                    result.Message = "用户名或密码错误";
                }
                else
                {
                    result.ErrCode = 0;
                    result.Message = "ok";
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("LoginByAccount", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
コード例 #4
0
        public async Task <IActionResult> EditPassword(CustomerPasswordViewModel model)
        {
            var customer = GetCurrentClient();

            if (customer == null)
            {
                return(RedirectToAction("Login", "Auth", new { Area = "Client" }));
            }

            if (ModelState.IsValid)
            {
                customer.Password = MD5Helper.Encode(model.Password);

                _dbContext.Entry(customer).State = EntityState.Modified;

                _dbContext.Update(customer);

                await _dbContext.SaveChangesAsync();

                ViewData["Message"] = "Password updated successfully.";

                //return RedirectToAction("EditPassword");
            }

            return(View(model));
        }
コード例 #5
0
        public async Task <IActionResult> EditPassword(CustomerPasswordViewModel model)
        {
            if (!HasPermission("EDIT_CUSTOMER_PASSWORD"))
            {
                return(Unauthorized());
            }

            var customer = await _context.Customers.SingleAsync(m => m.Id == model.Id);

            if (customer == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                customer.Password = MD5Helper.Encode(model.Password);

                _context.Update(customer);

                await _context.SaveChangesAsync();

                ViewData["Message"] = "Customer password updated successfully.";
                return(RedirectToAction("EditPassword"));
            }
            return(View(model));
        }
コード例 #6
0
        public async Task <IActionResult> Auth([FromBody] LoginModel user)
        {
            if (string.IsNullOrEmpty(user.Email) || string.IsNullOrEmpty(user.Password))
            {
                return(BadRequest("Invalid credentials"));
            }
            var _passwordHashed = MD5Helper.Encode(user.Password);
            var _user           = _context.User.FirstOrDefault(x => x.Email == user.Email && x.Password == _passwordHashed);

            if (_user == null)
            {
                return(BadRequest("Invalid credentials"));
            }

            return(Ok(new { token = BuildToken(_user) }));
        }
コード例 #7
0
        private bool ResetPasswordHash()
        {
            var entities = this.BaseDBRepository.UserRepository.GetAll().ToList();

            //entities.Select(x => x.Password = MD5Helper.Encode(x.Password));

            foreach (var entity in entities)
            {
                if (entity.Password != null)
                {
                    entity.Password = MD5Helper.Encode(entity.Password);
                }
                this.BaseDBRepository.UserRepository.Save(entity);
            }
            this.BaseDBRepository.Commit();
            return(true);
        }
コード例 #8
0
        public ActionResult LoginOn(LoginModel model)
        {
            //判断验证是否通过
            if (!ModelState.IsValid)
            {
                return(View());
            }
            var Dmodel = userhandler.GetSingleByName(model.user_login_name);

            if (Dmodel == null)
            {
                ViewBag.Data = 1;
                return(View());
            }

            //判断用户是否禁用,禁用提示信息
            if (!Dmodel.isopen)
            {
                ModelState.AddModelError("user_login_name", "用户名不存在");
                return(View());
            }

            var str = MD5Helper.Decode(Dmodel.user_pwd);

            if (!str.Equals(model.user_pwd))
            {
                ModelState.AddModelError("user_pwd", "密码不正确");
                return(View());
            }

            model.user_pwd = MD5Helper.Encode(model.user_pwd);
            var j = new { record = Dmodel };
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            //response.Write(serializer.Serialize(Dmodel));
            //保存身份信息,参数说明可以看提示
            //string roles = "admin,member,developer";
            FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, model.user_login_name, DateTime.Now, DateTime.Now.AddHours(2), false, Dmodel.user_role);
            HttpCookie Cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(Ticket)); //加密身份信息,保存至Cookie

            Cookie.HttpOnly = true;                                                                                       //客户端无法访问Cookie
            Response.Cookies.Add(Cookie);
            ViewBag.Data = 0;
            return(View());
        }
コード例 #9
0
        public async Task <IActionResult> Create(CustomerViewModel model)
        {
            if (!HasPermission("CREATE_CUSTOMERS"))
            {
                return(Unauthorized());
            }

            if (ModelState.IsValid)
            {
                var customer = model.ToEntity();
                customer.Username = customer.Name;
                customer.Password = MD5Helper.Encode("password");

                _context.Customers.Add(customer);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
コード例 #10
0
        public async Task <IActionResult> PostUser([FromBody] User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (_context.User.FirstOrDefault(x => x.Email == user.Email) != null)
            {
                return(BadRequest("Email already exist"));
            }

            var passwordHashed = MD5Helper.Encode(user.Password);

            user.Password = passwordHashed;

            _context.User.Add(user);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUser", new { id = user.IdUser }, user));
        }
コード例 #11
0
        public ActionResult LoginRegister(RegisterModel model)
        {
            //判断验证是否通过
            if (!ModelState.IsValid)
            {
                return(View());
            }

            User user = new User();

            user.isopen          = (bool)true;
            user.time            = DateTime.Now;
            user.user_email      = model.user_email;
            user.user_login_name = StringHelper.GetCleanStyle(model.user_login_name, " ");
            user.user_name       = model.user_show_name;
            user.user_pwd        = MD5Helper.Encode(model.user_pwd);
            user.user_role       = "member";
            int result = userhandler.InsertDataToUserTable(user);

            ViewBag.Data = result;
            return(View());
            //return View("LoginResult", result);
        }
コード例 #12
0
        public OperationResult SetCustomerPwd(RequestOperation <UserPasswordSetData> request)
        {
            var result = new OperationResult();

            try
            {
                request.Body.Password = MD5Helper.Encode(request.Body.Password);
                int row = RoleRightDA.SetCustomerPwd(request);
                if (row != 1)
                {
                    throw new Exception("设置密码失败");
                }
                result.ErrCode = 0;
                result.Message = "ok";
            }
            catch (Exception ex)
            {
                Logger.WriteException("SetCustomerPwd", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
コード例 #13
0
        public IActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var customer = _dbContext.Customers.FirstOrDefault(c => model.Username.Equals(c.Username, StringComparison.OrdinalIgnoreCase));

                if (customer == null)
                {
                    ModelState.AddModelError("Username", "Invalid Username");
                }
                else if (!customer.Password.Equals(MD5Helper.Encode(model.Password)))
                {
                    ModelState.AddModelError("Password", "Invalid Password");
                }
                else
                {
                    Request.HttpContext.Session.SetInt32("clientId", customer.Id);

                    return(RedirectToAction("Index", "Bookings", new { area = "Client" }));
                }
            }

            return(View(model));
        }
コード例 #14
0
        public async Task <IActionResult> PutUser([FromRoute] int id, [FromBody] User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.IdUser)
            {
                return(BadRequest());
            }

            var passwordHashed = MD5Helper.Encode(user.Password);

            user.Password = passwordHashed;

            _context.Entry(user).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #15
0
        public OperationResult <CustomerLoginData> Register(RequestOperation <RegisterData> request)
        {
            var result = new OperationResult <CustomerLoginData>();

            try
            {
                var requestTran = new RequestOperation <CustomerRegisterData>();
                requestTran.Header                     = request.Header;
                requestTran.Body                       = new CustomerRegisterData();
                requestTran.Body.Customer              = new CustomerData();
                requestTran.Body.Customer.AuditStatus  = 10;
                requestTran.Body.Customer.CustomerType = 1;
                requestTran.Body.Customer.Face         = request.Body.Face;
                requestTran.Body.Customer.Mobile       = request.Body.Account;
                requestTran.Body.Customer.Name         = request.Body.Name;
                requestTran.Body.Customer.NickName     = request.Body.NickName;

                requestTran.Body.Login               = new LoginData();
                requestTran.Body.Login.Account       = request.Body.Account;
                requestTran.Body.Login.QQAccount     = request.Body.QQAccount;
                requestTran.Body.Login.WechatAccount = request.Body.WechatAccount;
                requestTran.Body.Login.Password      = String.IsNullOrEmpty(request.Body.Password) ? MD5Helper.Encode("123456") : MD5Helper.Encode(request.Body.Password);
                requestTran.Body.Login.UserRoleID    = 1;
                requestTran.Body.Login.UserStatus    = 10;
                requestTran.Body.Login.UserFrom      = request.Header.DeviceID;

                result.Body = CustomerDA.Register(requestTran);

                if (result.Body == null)
                {
                    result.ErrCode = 1;
                    result.Message = "注册失败";
                }
                else
                {
                    result.ErrCode = 0;
                    result.Message = "ok";
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("Register", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
コード例 #16
0
        public ActionResult UpdateUser(User user, bool flag)
        {
            int    result = 1;
            string msg    = "";

            //新增
            if (flag)
            {
                if (user != null && !string.IsNullOrEmpty(user.user_login_name) &&
                    !string.IsNullOrEmpty(user.user_pwd) &&
                    !string.IsNullOrEmpty(user.user_email))
                {
                    if (ValidateUserLogin(user.user_login_name))
                    {
                        return(Content("用户登录名已被占用,请更换"));
                    }
                    user.user_pwd = MD5Helper.Encode(user.user_pwd);
                    user.time     = DateTime.Now;
                }
                result = userhandler.InsertDataToUserTable(user);
                switch (result)
                {
                case 0:
                    msg = "用户信息新增成功";
                    break;

                case 1:
                    msg = "用户信息新增失败";
                    break;
                }
            }
            //编辑
            else
            {
                User userEntity = userhandler.GetDataById((int)user.id);
                if (userEntity != null)
                {
                    if (userEntity.user_pwd != user.user_pwd)
                    {
                        user.user_pwd = MD5Helper.Encode(user.user_pwd);
                    }
                    if (user != null && !string.IsNullOrEmpty(user.user_login_name) &&
                        !string.IsNullOrEmpty(user.user_pwd) &&
                        !string.IsNullOrEmpty(user.user_email))
                    {
                        user.time                  = userEntity.time;
                        user.id                    = userEntity.id;
                        userEntity.user_email      = user.user_email;
                        userEntity.user_login_name = user.user_login_name;
                        userEntity.user_name       = user.user_name;
                        userEntity.user_nick_name  = user.user_nick_name;
                        userEntity.user_pwd        = user.user_pwd;
                        //userEntity.user_role = user.user_role;
                        userEntity.user_tel = user.user_tel;
                        result = userhandler.UpdateDataToUserTable(userEntity);
                    }
                }
                switch (result)
                {
                case 0:
                    msg = "用户信息编辑成功";
                    break;

                case 1:
                    msg = "用户信息编辑失败";
                    break;
                }
            }
            return(Content(msg));
        }