示例#1
0
        public async Task <IActionResult> Login([FromBody]  LoginInfo loginUser)
        {
            bool canILogin = false;

            if (!ModelState.IsValid)
            {
                return(BadRequest("لطفا داده های ورودی خود را کنترل فرمایید"));
            }
            var user = await _usersService.FindUserAsync(loginUser.Username, loginUser.Password).ConfigureAwait(false);

            if (user == null)
            {
                user = await _usersService.FindUserAsync(loginUser.Username).ConfigureAwait(false);

                if (user == null)
                {
                    return(Unauthorized());
                }
                var activePolicy = await _policyService.FindActiveAsync();

                _usersService.FailedLoginAttempt(user, activePolicy);
                var loginFailure = GetLogin(false, user);
                _loginService.Add(loginFailure);
                await _uow.SaveChangesAsync().ConfigureAwait(false);

                return(Unauthorized());
            }
            canILogin = user != null && user.IsActive;
            if (!canILogin)
            {
                return(Unauthorized());
            }
            if (!_usersService.CanILogin(user))
            {
                return(BadRequest("به دلیل وارد کردن یوزر و پسوورد اشتباه نام کاربری شما قفل شده است"));
            }
            if (await _roleService.IsDeviceIdRequired(user.Id))
            {
                if (!_usersService.CanMathDeviceId(user, loginUser))
                {
                    return(BadRequest("لطفا ورودی های خود را کنترل فرمایید"));
                }
            }
            var accessList = await _authLevelService.GetMyAccessListAsync(user.Id);

            var(accessToken, refreshToken) = await _tokenStoreService.CreateJwtTokens(user).ConfigureAwait(false);

            var loginSuccess = GetLogin(true, user);

            _loginService.Add(loginSuccess);
            _usersService.SuccessLoginAttempt(user);
            await _uow.SaveChangesAsync().ConfigureAwait(false);

            return(Ok(new { access_token = accessToken, refresh_token = refreshToken, accessList = accessList }));
        }
示例#2
0
        //[HttpPost]
        public ActionResult KisiEkle(LoginDTO kisi)
        {
            //kisi.KayitTarihi = DateTime.Now.Date;
            _ls.Add(kisi);

            return(RedirectToAction("Login", "Login"));
        }
示例#3
0
        public async Task <IActionResult> Post([FromBody] Users users)
        {
            var result = await _service.Add(users, _unitOfWork);

            if (result)
            {
                return(Ok(result));
            }
            return(StatusCode(StatusCodes.Status204NoContent));
        }
示例#4
0
        public async Task <ActionResult <bool> > AddLogin(LoginDto login)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await _loginService.Add(login);

            return(Ok(result));
        }
示例#5
0
 public IActionResult Add([FromBody] Login login)
 {
     try
     {
         return(Ok(_loginService.Add(login)));
     }
     catch (Exception ex)
     {
         var message = ex.Message;
         _log.LogError(message);
         return(StatusCode(StatusCodes.Status500InternalServerError, message));
     }
 }
示例#6
0
        public async Task <BaseResponse> Add()
        {
            await _loginService.Add();

            return(Ok());
        }
示例#7
0
 public Login Add(Login entity)
 {
     return(_loginService.Add(entity));
 }