C#更改密码并锁定帐户

时间:2018-05-28 13:50:31

标签: c# login

我必须编写一个代码,如果您尝试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 :(得分:1)

为什么不提取方法?让我们在一个返回truefalse的简单方法中实现一个简单的循环,而不是计算尝试次数:

  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");
 }