【问题标题】:How to Authenticate SOAP service with OAuth Access token C#如何使用 OAuth 访问令牌 C# 验证 SOAP 服务
【发布时间】:2018-01-31 02:50:39
【问题描述】:

我正在尝试使用 C# 连接到 SOAP API。我使用的 API 坚持我需要使用 OAuth 令牌对每个 API 调用进行身份验证。我已经实现了 OAuth 系统并获得了我需要的令牌,但我不知道如何将它附加到我正在进行的 SOAP 调用中。所以我尝试了这样的事情

       var soapClient = new ReturnClient();
    soapClient.ClientCredentials.UserName.UserName = "MyToken";
    soapClient.ClientCredentials.UserName.Password = "MyToken";
    var rrr = new RetrieveReturnRequest {RetrieveReturnRequestWrapper = xElem2};
    var response = soapClient.RetrieveReturn(rrr);

但这不起作用并抛出System.ServiceModel.CommunicationException:。谁能指出使用访问令牌验证 SOAP 调用的正确方法是什么

【问题讨论】:

  • 你在异常中得到什么信息?
  • @ChetanRanpariya 向apidomain/returns 发出 HTTP 请求时出错。这可能是由于在 HTTPS 情况下未使用 HTTP.SYS 正确配置服务器证书。这也可能是由于客户端和客户端之间的安全绑定不匹配造成的

标签: c# web-services authentication soap oauth


【解决方案1】:

通常,当您使用 OAuth 时,您需要使用 HTTP 标头传递“令牌”。对于 OAuth2 和不记名令牌,您需要在 Authorization HTTP 标头中传递它。

requestMessage.Headers["Authorization"] = "Bearer TOKEN_VALUE_HERE";

有关如何在 SOAP 客户端中传递 HTTP 标头的更多详细信息,请参阅此link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 2012-08-28
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多