C # Изменить пароль и заблокировать аккаунт - PullRequest
0 голосов
/ 28 мая 2018

Я должен написать код, который в случае неудачной попытки входа в систему 5 блокирует пользователя на 30 минуты.

Это код для входа в систему, который подсчитывает попытки

int InvalidLoginAttempts = 0;

for (int i = 0; i <5; i++){
    Console.WriteLine("Enter username");
    string username = Console.ReadLine();
    Console.WriteLine("Enter password");
    string password = Console.ReadLine();

    if (username != "valid" || password != "valid")
        InvalidLoginAttempts++;
    else
        break;
}

if (InvalidLoginAttempts > 5)
    Console.WriteLine("Login failure");
else
    Console.WriteLine("Login successful");
Console.ReadKey();

Как я могу сказать, что если InvalidLoginAttempts > 5, пользователь будет заблокирован?

1 Ответ

0 голосов
/ 28 мая 2018

Почему бы не извлечь метод ?Вместо подсчета попыток давайте реализуем простой цикл внутри простого метода, который возвращает true или false:

  private static bool TryToLogin(int attempts = 5) {
    for (int attempt = 0; attempt < attempts; ++attempt) {
      Console.WriteLine("Enter username");
      string username = Console.ReadLine();
      Console.WriteLine("Enter password");
      string password = Console.ReadLine(); 

      if (username == "valid" && password == "valid) 
        return true;
    }

    return false;
  }

Все, что нам теперь нужно сделать, - это проверить возвращаемое значение:

 if (!TryToLogin(5)) {
   //TODO: Lock user here

   Console.WriteLine("Login failure"); 
 }
 else {
   Console.WriteLine("Login successful");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...