Я новичок в asp net, и я пытаюсь создать подпрограмму signle, которая будет отправлять авторизацию в каждом запросе (например, AccessToken и AccessType.
У меня есть пустота, которая автоматически отправляет имя пользователя и пароль на сервер, и он получает AccessToken и AccessType.
Эта рутина называется
GetToken(string username,string password);
Тогда в другой рутине я делаю свои запросы.
Пример
public async static Task<string> IfOrderExists(string HttpResponse="[]")
{
try
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(TokenType, AccessToken);
client.Timeout = TimeSpan.FromMilliseconds(20000);
var response = await client.GetAsync(ServerIfOrderExists, cts.Token);
if(response.IsSuccessStatusCode)
HttpResponse = await response.Content.ReadAsStringAsync();
else if ((int)response.StatusCode == 401)
{
await GetToken(ServerUsername, ServerPassword);
HttpResponse= await IfOrderExists();
}
}
}
catch
{
}
return HttpResponse;
}
Я попытался выполнить вторую задачу ожидания внутри уже существующей, которая, когда я получаю ошибку 401, автоматически запускает мою процедуру GetToken, а затем запускает ту же самую процедуру для возврата моего результата. Я не знаю, правильный ли это метод, поэтому я задаю этот вопрос. Пожалуйста, сообщите мне, если есть лучший способ сделать это. Я создам карту, чтобы помочь вам понять, как работает моя рутина.