public async Task<IActionResult> Login(LoginModel model)
        {
            var vm = new LoginViewModel();
            vm.Model = model;

            if (!ModelState.IsValid)
            {
                vm.ErrorMessage = Messages.ModelStateNotValid;
                return this.View(vm);
            }

            var result = await this.AuthService.Login(model);

            if (result.Success)
            {
                Core.Security.SecurityManager.WriteToken(this.HttpContext, result.Data, model.RememberPassword);

                return this.RedirectToAction("Index", "Home");
            }
            else
            {
                vm.ErrorMessage = result.ErrorMessage;

                return this.View(vm);
            }
        }
Beispiel #2
0
        public async Task<Result<string>> Login(LoginModel model)
        {
            string password = EncryptHelper.EncryptMD5(model.Password);

            using (var uw = this.CreateUnitOfWork())
            {
                var user = await uw.GetAsync<User>(t => t.UserName == model.UserName && t.Password == password);

                if (user == null)
                {
                    return Result<string>.ErrorResult("用户名或密码不匹配");
                }
                if (user.Status == Domain.Enums.UserStatus.Verifying)
                {
                    return Result<string>.ErrorResult("您还未通过管理员审核, 请耐心等待");
                }
                if (user.Status == Domain.Enums.UserStatus.Deny)
                {
                    return Result<string>.ErrorResult("您已经被禁止登录");
                }

                string token = this.GenerateAndStoreToken(user.ID, model.RememberPassword);

                return Result.SuccessResult(token);
            }
        }