我创建了这个类来从请求中获取 Header 值。
public class AuthenticationHeader
{
private static IHttpContextAccessor _httpContextAccessor;
public AuthenticationHeader(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public string AuthHeader => _httpContextAccessor.HttpContext?.Request.Headers["Authorization"];
}
并且我已经像这样在我的 startup.cs 中注册了它
services.AddSingleton<AuthenticationHeader>();
它像这样被注入到我的其他课程中。
public BaseClient(HttpClient client, ILogger<BaseClient> logger, AuthenticationHeader authHeader)
{
_client = client;
client.BaseAddress = new Uri("yrl");
client.DefaultRequestHeaders.Add("Accept", "application/json");
_logger = logger;
AuthHeader = authHeader;
}
现在我已经将其注册为Singleton. 因此,当第一次调用我的 Api 并在标头中提供授权值时,api 被成功调用,但问题是当我传递空的授权标头时,它仍然成功调用了 api,因为它存储了由于单例而导致的旧标头值。我怎样才能解决这个问题?有没有其他方法可以做我正在做的事情。
慕姐4208626
相关分类