Я пытаюсь запрограммировать базовый метод аутентификации для консольного приложения, однако, похоже, он неожиданно закрывается при вводе.
Пример кода -
private static async Task Auth()
{
try
{
Console.WriteLine("Verify authentication");
Console.WriteLine("Enter your 6 digit code: ");
string AuthenticationKey = Console.ReadLine();
if (AuthenticationKey != "")
{
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = await client.GetAsync("http://www.anysiteexample.com"))
{
using (HttpContent content = response.Content)
{
string result = await content.ReadAsStringAsync();
if(result.Contains(AuthenticationKey))
{
Console.WriteLine("Successfully validated credentials, starting program...");
Setup();
}
if(!result.Contains(AuthenticationKey))
{
Console.WriteLine("Failed");
await Auth();
}
}
}
}
}
if (AuthenticationKey == "")
{
Console.WriteLine("Auth key is empty");
await Auth();
}
}
catch(Exception)
{
Console.WriteLine("Error raised closing application...");
Thread.Sleep(5000);
Environment.Exit(0);
}
}
если я ничего не введу в Console.ReadLine (), тогда он успешно выполнит оператор else, однако, если я введу что-либо буквенно-цифровое в Console.ReadLine (), он неожиданно закроется без исключения? В общем случае он должен обработать запрос httpclient, а затем любой из этих операторов if / else.