【问题标题】:Setting headers for Odata client为 Odata 客户端设置标头
【发布时间】:2017-05-19 08:58:39
【问题描述】:

我一直在尝试为Odata 客户端设置授权标头值。实例化客户端后,我会这样做:

container.BuildingRequest += (sender, e) => OnBuildingRequest(sender, e, accessToken);
private static void OnBuildingRequest(object sender, BuildingRequestEventArgs e, string token)
{
    e.Headers.Add("Authorization", "Bearer " + token);
}

调试时,它显示事件处理程序在向 WEB API 发出请求后被触发,这对我来说真的很奇怪。 文档说:

“在构建请求消息对象之前触发此事件”

这里似乎有什么问题?

【问题讨论】:

    标签: c# asp.net-web-api odata


    【解决方案1】:

    经过大量研究,我找到了问题的原因:在您发出实际请求之前,事件处理程序“BuildingRequest”不会被触发,也就是说,如果您有类似的方法:

    public IQueryable<Package> GetPackages()
    {
       return _container.Packages.AsQueryable();
    }
    

    “BuildingRequest”处理程序不会被触发。您必须执行它,即执行以下操作:

    _container.Packages.ToList();
    

    为了让它工作。

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 2018-10-17
      • 1970-01-01
      相关资源
      最近更新 更多