fcs-azure/AzureTokenHttpRequest.cs

38 lines
1.5 KiB
C#
Raw Normal View History

2023-09-11 12:56:55 +02:00
using System.Collections.Generic;
2022-12-14 12:01:50 +01:00
using System.Net.Http;
using System.Threading.Tasks;
2023-09-11 12:56:55 +02:00
using Inno.Business.Models.Common;
2022-12-14 12:01:50 +01:00
2023-09-11 12:56:55 +02:00
namespace Inno.Azure
2022-12-14 12:01:50 +01:00
{
public class AzureTokenHttpRequest
{
2023-09-11 12:56:55 +02:00
public static async Task<ResponseView> RequestTokenAsync(AzureAuthStore auth)
2022-12-14 12:01:50 +01:00
{
var credentials = new Dictionary<string, string>
{
2023-09-11 12:56:55 +02:00
{ "grant_type", auth.AzureGrantType },
{ "client_id", auth.AzureClientId },
{ "client_secret", auth.AzureSecret },
{ "scope", auth.AzureLoginScope }
2022-12-14 12:01:50 +01:00
};
using var client = new HttpClient();
2023-09-11 12:56:55 +02:00
//using var azureRequest = new HttpRequestMessage(HttpMethod.Post, auth.AzureTokenEndpoint());
//azureRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
2022-12-14 12:01:50 +01:00
var content = new FormUrlEncodedContent(credentials);
2023-09-11 12:56:55 +02:00
// todo - check for network connection - mitigate server fail
var responseMessage = await client.PostAsync(auth.AzureTokenEndpoint(), content).ConfigureAwait(true);
2022-12-14 12:01:50 +01:00
var azureResponse = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(true);
return new ResponseView
{
Code = responseMessage.StatusCode,
IsSuccessStatusCode = responseMessage.IsSuccessStatusCode,
Message = azureResponse
};
}
}
2023-09-11 12:56:55 +02:00
}