1 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
您正在使用應(yīng)用程序啟動(dòng)時(shí)HttpClient從緩存中檢索的靜態(tài)值進(jìn)行注冊(cè)。此時(shí),您的托管服務(wù)尚未運(yùn)行,因此緩存中還沒(méi)有任何價(jià)值。一旦緩存中最終有一個(gè)值,標(biāo)頭早已被設(shè)置,并且您永遠(yuǎn)不會(huì)重置它。
這里實(shí)際上完全不需要緩存。您也不需要Authorization在實(shí)際的客戶(hù)端注冊(cè)中設(shè)置標(biāo)頭。相反,只需將您的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 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)