C# 未找到.NET 5 Blazor HttpClient BaseAddressAuthorizationMessageHandler
我正在尝试使用将身份验证添加到我的.NET5BlazorWASM应用程序中,但出现了一个错误C# 未找到.NET 5 Blazor HttpClient BaseAddressAuthorizationMessageHandler,c#,blazor,blazor-webassembly,.net-5,C#,Blazor,Blazor Webassembly,.net 5,我正在尝试使用将身份验证添加到我的.NET5BlazorWASM应用程序中,但出现了一个错误 未处理的异常呈现组件:未注册“Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler”类型的服务。 我从git下载了这个示例,运行了它,一切都正常了,然后我注意到这个示例是在.NET3中完成的,当我将它更新为在.NET5中运行时,同样的错误也逐渐出现了。在我的Pro
未处理的异常呈现组件:未注册“Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler”类型的服务。
我从git下载了这个示例,运行了它,一切都正常了,然后我注意到这个示例是在.NET3中完成的,当我将它更新为在.NET5中运行时,同样的错误也逐渐出现了。在我的Program.cs
中,我注册了HttpClient
和BaseAddressAuthorizationMessageHandler
如下
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddHttpClient("ServerAPI",
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
.CreateClient("ServerAPI"));
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddAuthorizationCore();
builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
builder.Services.AddScoped<IAuthService, AuthService>();
await builder.Build().RunAsync();
}
公共静态异步任务主(字符串[]args)
{
var builder=WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add,我缺少了什么吗?我需要导入一个名称空间还是缺少配置的另一部分?断点似乎在客户端的程序.cs中不起作用,我看不到任何其他错误可以解释这一点。一旦我弄清楚发生了什么,这是一个相当简单的修复在上,当像这样设置授权时,显然不需要向客户端添加BaseAddressAuthorizationMessageHandler
,因为本例是通过AuthService
手动设置HTTP请求头
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddHttpClient("ServerAPI",
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress));
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
.CreateClient("ServerAPI"));
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddAuthorizationCore();
builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
builder.Services.AddScoped<IAuthService, AuthService>();
await builder.Build().RunAsync();
}
公共静态异步任务主(字符串[]args)
{
var builder=WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add(“应用程序”);
builder.Services.AddHttpClient(“ServerAPI”,
client=>client.BaseAddress=新Uri(builder.hostenEnvironment.BaseAddress));
builder.Services.addScope(sp=>sp.GetRequiredService()
.CreateClient(“ServerAPI”);
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddAuthorizationCore();
builder.Services.addScope();
builder.Services.addScope();
等待builder.Build().RunAsync();
}