Beispiel #1
0
        public void AccountLogOn()
        {
#if DEBUG
            _accountLogOnView.UserName = "******";
            _accountLogOnView.Password = "******";
#else
#endif
            LogOnRequest request = new LogOnRequest();
            request.UserName = _accountLogOnView.UserName;
            request.Password = CryptoHelper.Encrypt(_accountLogOnView.Password);

            bool validate = _userService.UserValidation(request);
            if (validate)
            {
                _userService.SetLastLogin(request.UserName);

                //Login Success.
                _accountLogOnView.HiddenForm();
                _homeView.DisplayForm();
            }
            else
            {
                //Login Fail.
                _accountLogOnView.ShowMessageAlert("Systems", "Login Fail !");
            }
        }
Beispiel #2
0
        public async Task <IActionResult> LogOn(LogOnModel model)
        {
            if (model.IsNotValid())
            {
                model.SetInputModelValues();
                return(View(model));
            }

            var clientLog = GetClientInfoLog();
            var request   = new LogOnRequest(model.Email, model.Password, clientLog);
            var response  = await OrganizationService.LogOn(request);

            if (response.Status.IsNotSuccess)
            {
                model.MapMessages(response);
                model.SetInputModelValues();
                return(View(model));
            }

            await HttpContext.SignInWithClaims(response.Item.Name, response.Item.Email);

            if (model.RedirectUrl != null)
            {
                return(Redirect(model.RedirectUrl));
            }

            if (response.Item.IsSuperAdmin)
            {
                return(Redirect("/Admin/Dashboard"));
            }

            return(RedirectToHome());
        }
        public UserLoginLog CreateEntityFromRequest(LogOnRequest request, User user)
        {
            var entity = new UserLoginLog();

            MapClientLogInfo(request.ClientLogInfo, entity);

            entity.OrganizationId   = user.OrganizationId;
            entity.OrganizationUid  = user.OrganizationUid;
            entity.OrganizationName = user.OrganizationName;
            entity.UserId           = user.Id;
            entity.UserUid          = user.Uid;
            entity.UserName         = user.Name;

            return(entity);
        }
        public async Task <LogOnResponse> LogOn(LogOnRequest request)
        {
            var response = new LogOnResponse();

            var user = await _userRepository.Select(x => x.Email == request.Email);

            if (user.IsNotExist() ||
                !user.IsActive)
            {
                response.ErrorMessages.Add("user_not_found_or_not_active");
                response.Status = ResponseStatus.Invalid;
                return(response);
            }

            if (_cryptoHelper.Hash(request.Password, user.ObfuscationSalt) == user.PasswordHash)
            {
                if (user.LoginTryCount < 6 ||
                    user.LastLoginTryAt.HasValue && user.LastLoginTryAt.Value.AddHours(1) < DateTime.UtcNow)
                {
                    user.LastLoginAt   = DateTime.UtcNow;
                    user.LoginTryCount = 0;

                    var loginLog  = _userLoginLogFactory.CreateEntityFromRequest(request, user);
                    var uowResult = await _logOnUnitOfWork.DoWork(user, loginLog);

                    if (uowResult)
                    {
                        _cacheManager.UpsertUserCache(user, _userFactory.MapCurrentUser(user));

                        response.Status = ResponseStatus.Success;
                        response.Item.OrganizationUid = user.OrganizationUid;
                        response.Item.Name            = user.Name;
                        response.Item.Email           = user.Email;
                        return(response);
                    }
                }
            }

            user.LastLoginAt    = null;
            user.LastLoginTryAt = DateTime.UtcNow;
            user.LoginTryCount++;

            await _userRepository.Update(user.Id, user);

            response.ErrorMessages.Add("password_invalid");
            response.Status = ResponseStatus.Failed;
            return(response);
        }
Beispiel #5
0
 public LogOnResponse LogOn(LogOnRequest request)
 {
     return(new LogOnResponse());
 }
        public static LogOnRequest GetLogOnRequest()
        {
            var request = new LogOnRequest(EmailOne, PasswordOne, GetClientLogInfo());

            return(request);
        }
 public bool UserValidation(LogOnRequest request)
 {
     return(_userRepository.IsAuthentication(request.UserName, request.Password));
 }