in Source/WebApp-Service-Provider-DotNet/Controllers/DataController.cs [167:220]
public async Task<IActionResult> Resource()
{
ConsentCookie consentCookie;
try
{
var json = Base64Decode(Request.Cookies["consent"]);
consentCookie = JsonSerializer.Deserialize<ConsentCookie>(json);
}
catch (Exception)
{
ViewData["Message"] = "Impossible d'obtenir l'autorisation d'accès aux ressources, veuillez réessayer.";
return View();
}
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", consentCookie.Token);
var response = await client.GetAsync(GetResourceUrl(consentCookie.Provider));
if (response.IsSuccessStatusCode)
{
var resource = await response.Content.ReadAsStringAsync();
BaseResourceViewModel resourceViewModel = null;
try
{
resourceViewModel = ConvertResource(resource, consentCookie.Provider);
}
catch (JsonException)
{
ViewData["Message"] = "Les données n'ont pas pu être désérialisées.";
}
return View(resourceViewModel);
}
else if (response.StatusCode == HttpStatusCode.NotFound)
{
ViewData["Message"] = "La ressource demandée n'a pas été trouvée.";
if (consentCookie.Provider=="Custom"){
UriBuilder addDataUri = new(GetResourceUrl(consentCookie.Provider))
{
Path = "/Account/Register"
};
ViewData["Register-url"] = addDataUri.Uri;
}
return View();
}
else if (response.StatusCode == HttpStatusCode.Unauthorized)
{
ViewData["Message"] = "Vous n'êtes pas autorisé à accéder cette ressource.";
return View();
}
else
{
ViewData["Message"] = "Impossible de récupérer les données auprès du fournisseur choisi.";
return View();
}
}