【问题标题】:How to add Bearer token to Simple OData Client如何将不记名令牌添加到简单 OData 客户端
【发布时间】:2018-12-07 17:19:46
【问题描述】:

OData 新手,我需要访问需要身份验证和令牌的 SAP Odata Web 服务。假设我对令牌进行了硬编码。如何将此令牌添加到简单 OData 客户端?

var settings = new Simple.OData.Client.ODataClientSettings();

settings.BaseUri = new Uri("https://..../UoM?$filter=wer eg '1000' &format=json");

settings.Credentials = new NetworkCredential("user1", "usrpwd");
var client = new ODataClient(settings);

请帮帮我。

更新--

在此链接中:Simple Odata Client - How to add oAuth Token in each request header?

它没有显示如何添加硬编码令牌。对于我的问题,我需要添加一个给定的令牌并发出 Odata 请求。我查看了 Odata.org 网站,我似乎没有找到任何适合我的案例的示例。

我没有使用 simple.Odata.client 的经验,请问有人能告诉我如何操作吗?

谢谢

【问题讨论】:

  • 您能否提供 Simple.OData.Client 的令牌和授权的链接参考?我需要您的帮助。
  • “硬编码令牌”是什么意思?链接的答案显示了如何更改传出请求标头以便传递身份验证信息,为什么这对您不起作用?
  • 什么是 Default.Container?我在 Simple.OData.Client 中没有它。如何手动添加令牌,比如说,token ="xddwewe ==" ?
  • 嘿@MilkBottle,我的回答对你有用吗?

标签: xamarin.forms odata simple.odata.client


【解决方案1】:

我相信您可以在发送请求之前使用ODataClientSettings.BeforeRequest 操作来更改请求。

在下面的示例中,我将请求的 Authorization 标头设置为“Bearer <Token>”:

settings.BeforeRequest = req => {
    req.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "Your_Token_Here");
};

当然,您可以为特定类型的身份验证配置请求。

【讨论】:

    【解决方案2】:

    您在示例中使用的 URL 显然是错误的,而不是 SAP 的 OData URL。

    您需要下面“yourODataServiceRootURL”的基本 URL,然后稍后在 ODataclient 设置中添加相对路径,例如。 "api/data/v9.1"

    不是使用委托方法来拦截并在每个 Http 调用上添加 Authorization 标头,更清晰/更清洁的解决方案是使用 HttpClient 实例实例化 ODataClient。

    这也允许您在外部控制 HttpClient 生命周期。

    以下代码是使用 Azure AD OAuth2 令牌连接到 Dynamics 365 OData Web API 的 .Net 核心应用程序的摘录。

    httpClient.BaseAddress = new Uri(yourODataServiceRootURL);
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", yourBearerAccessToken);
    
    //Use the httpClient we setup with the Bearer token header
    var odataSettings = new ODataClientSettings(httpClient, new Uri("api/data/v9.1", UriKind.Relative));
    
    var odataClient = new ODataClient(odataSettings);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2019-02-08
      • 2017-10-06
      • 1970-01-01
      • 2017-10-18
      • 2014-03-19
      • 2021-03-15
      相关资源
      最近更新 更多