C# 如何在配置级别处理过期的授权令牌

C# 如何在配置级别处理过期的授权令牌,c#,.net-core,httpclient,separation-of-concerns,polly,C#,.net Core,Httpclient,Separation Of Concerns,Polly,将授权令牌添加到HttpRequestMessage的一种方法是只需在配置级别添加它: services.AddHttpClient<INetworkService, NetworkService>(client => { client.BaseAddress = new Uri(appConfig.Network.SE); client.DefaultRequestHeaders.Add("Authorization", TokenGene

将授权令牌添加到
HttpRequestMessage
的一种方法是只需在配置级别添加它:

services.AddHttpClient<INetworkService, NetworkService>(client =>
{
    client.BaseAddress = new Uri(appConfig.Network.SE);
    client.DefaultRequestHeaders.Add("Authorization", TokenGenerator.GetToken());
})

这回答了你的问题吗@PeterCsala不,我没有将策略逻辑强加给客户端。您有两种选择(我知道),要么用正在设置新令牌的实例替换客户端,要么从上下文检索访问令牌,并在重试时刷新上下文中的数据。
return Policy
    .HandleResult<HttpResponseMessage>(response => response.StatusCode == HttpStatusCode.Unauthorized)
    .RetryAsync(
        retryCount : 1, 
        onRetryAsync: async (responseDelegate, retryNumber, context) =>
        {      
            // Case 1: Token Expired
            ?? how to mutate request message with new auth header???
            // Case 2: Actually unathorized
        }