示例#1
0
        // private void CacheMenuFunctionByUser(SessionModel model)
        // {

        //     AuthHelper.MenuFunctionByUserId(model);
        // }

        private void Session_Cookie(AuthModel model, SY_User user)
        {
            var host = Request.Host.Host;

            //Session
            var userSession = new SessionModel
            {
                UserId   = user.Id,
                Name     = user.Name,
                Username = user.Username,
                Avatar   = user.Avatar,
                isAdmin  = user.isAdmin
            };


            //CacheMenuFunctionByUser(userSession);

            //Mã hóa
            var serializeModel = JsonConvert.SerializeObject(userSession);
            var encryptModel   = CryptoHelper.EncryptSessionCookie_User(serializeModel);

            //Lưu lại trong session
            HttpContext.Session.SetString(SessionConfig.Kz_UserSession, encryptModel);

            //Kiểm tra có lưu cookie
            if (model.isRemember)
            {
                var option = new CookieOptions();
                option.Expires = DateTime.Now.AddMonths(1);
                HttpContext.Response.Cookies.Append(CookieConfig.Kz_UserCookie, encryptModel);
            }
        }
示例#2
0
        public async Task <MessageReport> Update(SY_User model)
        {
            var query = new StringBuilder();

            query.AppendLine("{");
            query.AppendLine("'_id': { '$eq': '" + model.Id + "' }");
            query.AppendLine("}");

            return(await _SY_UserRepository.Update(MongoHelper.ConvertQueryStringToDocument(query.ToString()), model));
        }
示例#3
0
        public IActionResult Register(RegisterModel model)
        {
            model.isAny = _SY_UserService.GetAll().Result.Any();
            if (model.isAny)
            {
                return(RedirectToAction("Index", "Login"));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Kiểm tra mật khẩu
            if (model.Password != model.RePassword)
            {
                ModelState.AddModelError("", "Mật khẩu không khớp");
                return(View(model));
            }

            var salat = Guid.NewGuid().ToString();

            var obj = new SY_User()
            {
                Id            = Guid.NewGuid().ToString(),
                Name          = model.Name,
                Username      = model.Username,
                Active        = true,
                Avatar        = "",
                Password      = CryptoHelper.EncryptPass_User(model.Password, salat),
                PasswordSalat = salat,
                isAdmin       = true
            };

            var result = _SY_UserService.Create(obj).Result;

            if (result.isSuccess)
            {
                return(RedirectToAction("Index", "Login"));
            }
            else
            {
                ModelState.AddModelError("", result.Message);
                return(View(model));
            }
        }
示例#4
0
        public Task <MessageReport> Login(AuthModel model, out SY_User user)
        {
            var result = new MessageReport(false, "Có lỗi xảy ra");

            try
            {
                //Kiểm tra username
                var objUser = GetByUsername(model.Username).Result;
                if (objUser == null)
                {
                    user   = null;
                    result = new MessageReport(false, "Tài khoản không tồn tại");
                    return(Task.FromResult(result));
                }

                if (objUser.Active == false)
                {
                    user   = null;
                    result = new MessageReport(false, "Tài khoản bị khóa");
                    return(Task.FromResult(result));
                }

                //Giải mã
                var pass = CryptoHelper.DecryptPass_User(objUser.Password, objUser.PasswordSalat);

                //Check mật khẩu
                if (pass != model.Password)
                {
                    user   = null;
                    result = new MessageReport(false, "Mật khẩu không khớp");
                    return(Task.FromResult(result));
                }

                //Gán lại user
                user   = objUser;
                result = new MessageReport(true, "Đăng nhập thành công");
            }
            catch (System.Exception ex)
            {
                user   = null;
                result = new MessageReport(false, ex.Message);
            }

            return(Task.FromResult(result));
        }
示例#5
0
        public async Task <SY_User_Submit> GetCustomByModel(SY_User model)
        {
            var obj = new SY_User_Submit()
            {
                Id       = model.Id,
                Active   = model.Active,
                Name     = model.Name,
                Roles    = new List <string>(),
                Username = model.Username,
                isAdmin  = model.isAdmin,
                Avatar   = model.Avatar
            };

            obj.Roles = (from n in _SY_Map_User_RoleRepository.Table
                         where n.UserId == model.Id
                         select n.RoleId).ToList();

            return(await Task.FromResult(obj));
        }
示例#6
0
        public async Task <MessageReport> Register(UserRegister model)
        {
            var result = new MessageReport(false, "Có lỗi xảy ra");

            try
            {
                //Kiểm tra email có tồn tại
                var existed = await GetByUsername(model.Email);

                if (existed != null)
                {
                    result = new MessageReport(false, "Email này đã tồn tại trong hệ thống");
                    return(await Task.FromResult(result));
                }

                //Gắn lại giá trị
                var obj = new SY_User()
                {
                    Active        = true,
                    Avatar        = "",
                    Id            = ObjectId.GenerateNewId().ToString(),
                    isAdmin       = false,
                    Name          = model.Name,
                    Password      = model.Password,
                    PasswordSalat = Guid.NewGuid().ToString(),
                    Phone         = "",
                    Username      = model.Email
                };

                obj.Password = CryptoHelper.EncryptPass_User(obj.Password, obj.PasswordSalat);

                result = await _SY_UserRepository.Add(obj);
            }
            catch (Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(await Task.FromResult(result));
        }
示例#7
0
        public IActionResult Index(AuthModel model)
        {
            model.isAny = _SY_UserService.GetAll().Result.Any();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var objUser = new SY_User();
            var result  = _SY_UserService.Login(model, out objUser).Result;

            if (result.isSuccess)
            {
                Session_Cookie(model, objUser);
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ModelState.AddModelError("", result.Message);
                return(View(model));
            }
        }
示例#8
0
 public async Task <MessageReport> Create(SY_User model)
 {
     return(await _SY_UserRepository.Add(model));
 }
示例#9
0
        public async Task <IActionResult> Create(SY_User_Submit model, bool SaveAndCountinue = false)
        {
            model.Data_Role = await _SY_RoleService.GetAllActiveOrder();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //
            var existed = await _SY_UserService.GetByUsername(model.Username);

            if (existed != null)
            {
                ModelState.AddModelError("Username", "Tài khoản tồn tại");
                return(View(model));
            }

            if (string.IsNullOrWhiteSpace(model.Password))
            {
                model.Password = "******";
            }
            else
            {
                if (model.Password != model.RePassword)
                {
                    ModelState.AddModelError("RePassword", "Mật khẩu không khớp");
                    return(View(model));
                }
            }

            var obj = new SY_User()
            {
                Active        = model.Active,
                Id            = Guid.NewGuid().ToString(),
                Password      = model.Password,
                PasswordSalat = Guid.NewGuid().ToString(),
                Name          = model.Name,
                Username      = model.Username,
                isAdmin       = model.isAdmin,
                Phone         = model.Phone
            };

            if (!string.IsNullOrWhiteSpace(model.RoleIds))
            {
                var ks = model.RoleIds.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                model.Roles = new List <string>();
                foreach (var item in ks)
                {
                    model.Roles.Add(item);
                }

                foreach (var item in model.Roles)
                {
                    var t = new SY_Map_User_Role()
                    {
                        Id     = Guid.NewGuid().ToString(),
                        RoleId = item,
                        UserId = obj.Id
                    };

                    await _SY_RoleService.CreateMap(t);
                }
            }

            //Mã hóa pass
            obj.Password = CryptoHelper.EncryptPass_User(obj.Password, obj.PasswordSalat);

            //Thực hiện thêm mới
            var result = await _SY_UserService.Create(obj);

            if (result.isSuccess)
            {
                if (SaveAndCountinue)
                {
                    TempData["Success"] = "Thêm mới thành công";
                    return(RedirectToAction("Create"));
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                ModelState.AddModelError("", result.Message);
                return(View(obj));
            }
        }