1 回答
TA贡献2011条经验 获得超2个赞
您正在使用应用程序启动时HttpClient从缓存中检索的静态值进行注册。此时,您的托管服务尚未运行,因此缓存中还没有任何价值。一旦缓存中最终有一个值,标头早已被设置,并且您永远不会重置它。
这里实际上完全不需要缓存。您也不需要Authorization在实际的客户端注册中设置标头。相反,只需将您的GetAccessToken方法修改为:
private void GetAccessToken(object state)
{
Dictionary<string, string> authenticationCredentials_np = Configuration.GetSection("NonProductionEnvironment:Credentials").GetChildren().Select(x => new KeyValuePair<string, string>(x.Key, x.Value)).ToDictionary(x => x.Key, x => x.Value);
Token token_np = GetToken(new Uri(Configuration["NonProductionEnvironment:URL"]), authenticationCredentials_np).Result;
_client_NP.DefaultRequestHeaders.Add("Authorization", $"Bearer {token_np.AccessToken}");
}
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报