.NET 9 Blazor带认证API问题:HttpClient未携带认证信息
问题:.NET 9 Blazor独立账户认证下API请求被重定向至登录页
我正在使用.NET 9和Blazor开发一个演示项目,目的是展示如何用独立账户(Individual Accounts)保护API,代码已上传至GitHub。
我在服务端和客户端的Program.cs中配置了IHttpClientFactory,代码如下:
builder.Services .AddScoped(sp => sp .GetRequiredService<IHttpClientFactory>() .CreateClient("ServerAPI")) .AddHttpClient("ServerAPI", (provider, client) => { client.BaseAddress = new Uri("https://localhost:7130"); });
我添加了两个测试端点:ClientEndpoint和ClientAddressEndpoint,并为它们都配置了RequireAuthorization。通过Swagger完成认证后,API可以正常响应请求。
之后我创建了ClientList页面用于展示客户端列表,该页面通过API获取数据,代码如下:
@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<List<Domain.Client>>(); }
目前遇到的问题是:用户已完成认证,但页面发起API请求时,应用仍会将请求重定向到登录页面。我已检查过相关配置,但未找到问题根源。
内容的提问来源于stack exchange,提问作者Enrico
相关产品推荐
相关产品推荐

