我已经构建了一个基于IdentityServer4的授权服务器 . 有用 . 但是当我尝试使用反向通道刷新令牌时,请求在HttpContext上调用AuthenticateAsync()方法时失败 . 基本上,在HttpContext上调用AuthenticateAsync()或SignInAsync()会失败 . 更糟糕的是,即使我在try ... catch块中包装调用,也不会抛出任何异常 .

我已经尝试将IHttpContextAccessor注入Scoped或Singleton但结果相同 . 我首先补充一点,授权服务器返回更新的令牌,但它正在使用客户端应用程序中的新令牌更新cookie,而该过程将停止 . 我怀疑问题与上下文有关,但我似乎无法指出确切的问题 .

以下是代码段

var accessToken = string.Empty;
var currentContext = _context.HttpContext;

// this line works perfectly
var refreshToken = await 
currentContext.GetTokenAsync(OpenIdConnectParameterNames.RefreshToken);

// the auth service returns the tokens in the stringified data object 
var tokens = JsonConvert.DeserializeObject<List<AuthenticationToken>>(data);

if (tokens.Any())
{
    // this is the line that fails
    var currentAuthenticateResult = await 
        currentContext.AuthenticateAsync("Cookies");

    currentAuthenticateResult.Properties.StoreTokens(tokens);

    // even this fails
    await currentContext.SignInAsync("Cookies", 
        currentAuthenticateResult.Principal, 
        currentAuthenticateResult.Properties);

 }

客户端应用程序是用.NET Core 2.1编写的

我需要帮助 .