示例#1
0
        public ActionResult Login(UserLoginParams userLoginParams)
        {
            if (string.IsNullOrEmpty(userLoginParams.Account) || string.IsNullOrEmpty(userLoginParams.PassWord))
            {
                ShowMsg("账号密码不能为空");
                return(RedirectToAction("Login"));
            }

            using (var db = new ClubEntities())
            {
                var pw = userLoginParams.PassWord.MD5Encoding(userLoginParams.Account);

                var user = db.User.FirstOrDefault(a => a.Account == userLoginParams.Account && a.PassWord == pw);
                if (user == null)
                {
                    ShowMsg("用户不存在");
                    return(RedirectToAction("Login"));
                }
                //设置用户登陆状态
                Session["loginUser"] = user;


                return(Redirect("/"));
            }
        }
示例#2
0
        public async Task <IHttpActionResult> SignIn(UserLoginParams model)
        {
            APIResponse _response = new APIResponse();

            if (string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.Password))
            {
                _response.Message    = "Username or password is empty";
                _response.WasSuccess = false;

                return(Ok(_response));
            }

            LoggedInUser _loggedInUser = await AppManager.AuthenticateLoggedInUserAsync(model.Email, model.Password);

            if (_loggedInUser != null)
            {
                UserSession _session = await AppManager.CreateUserSession(_loggedInUser.ID, "API");

                _loggedInUser.SessionID = _session.ID;
                _loggedInUser.Token     = _session.Token;

                _response.Data       = _loggedInUser;
                _response.WasSuccess = true;
                _response.Message    = "Successfully logged-in";

                return(Ok(_response));
            }
            else
            {
                _response.Message = "Email or password do not match. Please try again later.";

                return(Ok(_response));
            }
        }
示例#3
0
        public async Task <ActionResult <UserInfoResult> > Login(UserLoginParams @params)
        {
            User user = await _dbContext.User
                        .Where(it => it.Username == @params.Username && it.Password == @params.Password)
                        .FirstOrDefaultAsync();

            if (user == null)
            {
                return(Unauthorized());
            }

            _logger.LogInformation("User '{1}' logged in.", user.Username);

            user.AccessTime = DateTime.UtcNow;

            await _dbContext.SaveChangesAsync();

            return(new UserInfoResult
            {
                Id = user.Id,
                Username = user.Username,
                Language = user.Language,
                Gender = user.Gender,
                Avatar = user.Avatar,
                HomePage = user.HomePage,
                Color = user.Color
            });
        }
示例#4
0
        public IActionResult Authenticate([FromForm] UserLoginParams form)
        {
            User user = null;

            try
            {
                user = _userService.Authenticate(form);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e);
            }
            if (user == null)
            {
                return(BadRequest("Invalid credentials"));
            }

            Claim[] claims = new[]
            {
                new Claim(ClaimTypes.Name, user.Id.ToString()),
                new Claim(ClaimTypes.Role, user.Role)
            };


            var tokenInfo = _tokenGenerator.GenerateToken(_config.GetValue <string>("AppSettings:Secret"), claims, 15);

            return(Ok(new UserDto
            {
                UserName = user.UserName,
                Email = user.Email,
                Token = tokenInfo.Token,
                ValidTo = tokenInfo.ValidTo
            }));
        }
示例#5
0
        public User Authenticate(UserLoginParams userParams)
        {
            CheckArgs(userParams.UserName, userParams.Password);

            User user = _userRepository.GetByUserName(userParams.UserName);

            if (user == null || !VerifyPassword(userParams.Password, user.PasswordHash, user.PasswordSalt))
            {
                return(null);
            }

            return(user);
        }
示例#6
0
        [HttpPost("Session")] // 555 ?
        public async Task <ActionResult <UserInfoResult> > Login(UserLoginParams @params)
        {
            // UNDONE: 也考虑可以使用邮箱登录
            var user = await _dbContext.Users
                       .Where(it => it.Username.Equals(@params.Username))
                       .SingleOrDefaultAsync() ?? null;

            if (user is null)
            {
                return(Unauthorized());
            }

            if (user.Password == string.Empty)
            {
                user.Password     = @params.Password;
                user.CreationTime = DateTime.UtcNow;
                user.ModifiedTime = DateTime.UtcNow;
            }
            else if (!user.Password.Equals(@params.Password))
            {
                return(Unauthorized());
            }

            _logger.LogInformation($"User '{user.Username}' logged in.");

            user.AccessTime = DateTime.UtcNow;

            await _dbContext.SaveChangesAsync();

            return(new UserInfoResult
            {
                Id = user.Id,
                Avatar = user.Avatar,
                Color = user.Color,
                Username = user.Username,
                Language = user.Language,
                Email = user.Email,
                HomePage = user.HomePage,
                ExtraInfo = user.ExtraInfo,
            });
        }