C# 从回调方法访问时,HttpContextAccessor Cookie为空

C# 从回调方法访问时,HttpContextAccessor Cookie为空,c#,.net-core,httpcontext,C#,.net Core,Httpcontext,我在我的网站上使用Stripe作为付款方式 当用户登录时,我将用户的访问和id令牌存储在httpContextAccessor.HttpContext.Request.Cookies中 这一切都很好,我可以在我注入IHttpContextAccessor实例的任何页面上访问令牌 当用户付款时,我为回调设置了一个控制器来处理付款状态。我需要访问存储在Cookie中的ID,但它们为空 我的问题是,我需要做什么才能在回调函数中访问登录用户cookie 以下是我在其他页面上获取cookie信息的方式:

我在我的网站上使用Stripe作为付款方式

当用户登录时,我将用户的访问和id令牌存储在httpContextAccessor.HttpContext.Request.Cookies中

这一切都很好,我可以在我注入IHttpContextAccessor实例的任何页面上访问令牌

当用户付款时,我为回调设置了一个控制器来处理付款状态。我需要访问存储在Cookie中的ID,但它们为空

我的问题是,我需要做什么才能在回调函数中访问登录用户cookie

以下是我在其他页面上获取cookie信息的方式:

private IHttpContextAccessor _httpContextAccessor;
    public StripeWebHook(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

var id_Token = _httpContextAccessor.HttpContext.Request.Cookies["id_token"];

你没有,它们是请求
HttpContext.Request.Cookies
Cookies。Cookie保存在客户端(浏览器)而不是服务器端,并随每个请求一起传输

第一个问题是,为什么您需要回调上的访问和id令牌

如果您出于某种原因确实这样做,以下场景就足够了:

  • 用户创建将获得特定付款id的付款
  • 服务器端将支付id(可能与id和访问令牌一起)保存在数据库中
  • 执行回调后,您可以通过支付id从数据库中检索它们

  • 请记住,在回调发生时,用户可能已经注销/撤销/刷新了访问令牌。

    我不确定自己是否理解该体系结构。在你的问题中,哪两方在用“回调方法”进行沟通,以及沟通的方向是什么?是由Stripe发起并由您的web服务(例如webhook)处理的流量通知您状态吗?或者您指的是从最终用户的浏览器到您的web服务的AJAX调用,以请求最新状态?Stripe通知webhook支付状态。我需要在成功付款后调用API,我需要在用户登录时存储ID。谢谢。我需要这样做,因为我需要在成功付款时使用令牌调用API。