public string Create(UserWrongPasswordPoco poco) { UserWrongPassword entity = _mapper.Map <UserWrongPassword>(poco); _userWrongPassword.InsertOne(entity); return(entity.Id); }
public string Create(UserWrongPasswordPoco poco) { UserWrongPassword entity = _mapper.Map <UserWrongPassword>(poco); _context.SaveAsync(entity); return(entity.Id); }
public UserPoco Authenticate(string userId, string password, string loginIP = null) { var poco = _usersRepository.Find(userId); if (poco == null) { CreateLoginLog(userId, loginIP, true, "Cannot find user."); throw new LoginException("Invalid username or password"); } if (VerifyHash(password, poco.PasswordHash)) { if (!poco.IsActivated) { CreateLoginLog(userId, loginIP, true, "User activation rquired."); throw new LoginException("User activation rquired."); } else if (poco.IsLocked) { CreateLoginLog(userId, loginIP, true, "Account is locked."); throw new LoginException("Account is locked."); } CreateLoginLog(userId, loginIP, false, "Success."); _userWrongPasswordRepository.Delete(userId); return(poco); } else { CreateLoginLog(userId, loginIP, true, "Password verification failed."); if (poco.IsLocked) { throw new LoginException("Your account is locked."); } else { UserWrongPasswordPoco wpPoco = _userWrongPasswordRepository.Find(userId); if (wpPoco != null && wpPoco.FailedCount >= MaxLoginAttempt) { _userWrongPasswordRepository.Delete(userId); _usersRepository.LockUser(userId); _userHistoriesRepository.Create(userId, userId, "Max login attempt reached."); throw new LoginException("Invalid username or password. Your account is locked."); } else { _userWrongPasswordRepository.IncreaseFailedCount(userId); throw new LoginException("Invalid username or password"); } } } }