如何使用OAuth访问令牌C#验证SOAP服务

时间:2018-01-31 02:50:39

标签: c# web-services authentication soap oauth

我正在尝试使用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调用的正确方法是什么

1 个答案:

答案 0 :(得分:2)

通常,当您使用OAuth时,您需要传递"令牌"使用HTTP标头。对于OAuth2和承载令牌,您需要在Authorization HTTP标头中传递它。

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

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