我将Visual Studio 2019
和.Net Core 3.0.0-preview-7
与标准 Blazor 客户端、服务器和共享模板一起使用。
在应用程序中,我们的服务器端 WebApi 应用程序将始终要求标头中存在 JWT 令牌以进行授权。
从以下内容来看
在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求
我创建了以下处理程序;
public class JwtTokenHeaderHandler : DelegatingHandler
{
private readonly ILocalStorageService _localStorage;
public JwtTokenHeaderHandler(ILocalStorageService localStorage)
{
_localStorage = localStorage;
}
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
if (!request.Headers.Contains("bearer"))
{
var savedToken = await _localStorage.GetItemAsync<string>("authToken");
if (!string.IsNullOrWhiteSpace(savedToken))
{
request.Headers.Add("bearer", savedToken);
}
}
return await base.SendAsync(request, cancellationToken);
}
}
我用来Blazored.LocalStorage从本地存储获取保存的令牌并将其添加到标头。
现在,此时我不确定该怎么做,就好像我将以下内容添加到Blazor.Client Startup.cs;
services.AddTransient<JwtTokenHeaderHandler>();
services.AddHttpClient("JwtTokenHandler")
.AddHttpMessageHandler<JwtTokenHeaderHandler>();
我收到错误消息;
“IServiceCollection”不包含“AddHttpClient”的定义,并且找不到接受“IServiceCollection”类型的第一个参数的可访问扩展方法“AddHttpClient”(您是否缺少 using 指令或程序集引用?)
谁能指导我在这里做错了什么?
慕姐8265434
心有法竹
慕容森
蝴蝶不菲
相关分类