.NET 9 Blazor-APIs mit Authentifizierung: HttpClient ist ohne AuthentifizierungC#

Ein Treffpunkt für C#-Programmierer
Guest
 .NET 9 Blazor-APIs mit Authentifizierung: HttpClient ist ohne Authentifizierung

Post by Guest »

Ich erstelle ein einfaches Projekt mit .NET 9 und Blazor, um zu zeigen, wie APIs mithilfe einzelner Konten geschützt werden. Ich habe den Code auf GitHub veröffentlicht.
Ich habe im Server- und Client-Programm Program.cs den Code für die IHttpClientFactory wie folgt hinzugefügt:

Code: Select all

builder.Services
.AddScoped(sp => sp
.GetRequiredService()
.CreateClient("ServerAPI"))
.AddHttpClient("ServerAPI", (provider, client) =>
{
client.BaseAddress = new Uri("https://localhost:7130");
});
Ich habe 2 Endpunkte zum Testen hinzugefügt: ClientEndpoint und ClientAddressEndpoint. Dann habe ich allen RequireAuthorization hinzugefügt. Mit Swagger und nach der Authentifizierung funktionieren die APIs.
Jetzt habe ich eine Seite erstellt, um die Liste der Clients anzuzeigen. Im Client-Projekt liest die Seite ClientList die Liste aus den APIs.

Code: Select all

@attribute [Authorize]
@inject HttpClient httpClient

public async Task GetClients()
{
if (string.IsNullOrEmpty(user))
{
Clients = null;
return;
}

HttpRequestMessage request =
new HttpRequestMessage(HttpMethod.Get, $"/api/Client");
HttpResponseMessage responseMessage = await httpClient.SendAsync(request);
responseMessage.EnsureSuccessStatusCode();
Clients =
await responseMessage.Content.ReadFromJsonAsync();
}
Obwohl der Benutzer authentifiziert ist, leitet die Anwendung die Anfrage immer an die Anmeldeseite weiter, wie Sie in diesem Screenshot sehen können.
Image

Ich glaube, ich habe alle Konfigurationen richtig überprüft, kann sie aber nicht finden ausstellen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post