2016-11-30 36 views
2

我正在使用Azure API管理肥皂传递URL(ENdpoint) 它具有用于身份验证的订阅密钥。如何在API中添加标题管理通过URL传递肥皂?

但是,当我添加wsdl网络端点只有基地址,而不是标题。并通过Web服务调用后,我得到的错误:

{"The HTTP request is unauthorized with client authentication scheme 'Anonymous'.
The authentication header received from the server was 'Key realm=\"https:\url\",name=\"Key\",type=\"header\"'."}

我想我错过了传递标题。

如何通过头来调用web api endpoint? 我们不能在web.config中提到它。

+0

只是为了确认,你正在建立一个Web API,它想调用一个SOAP端点。您已将WSDL导入到APIM中,并且当您从ASP.NET Web API调用APIM时,您会收到上述错误。那是对的吗? –

+0

不知道这是否也是MSDN论坛上报告的相同问题,但目前存在APIM Soap Passthrough和使用订阅密钥查询参数的错误。我们目前正在进行修复。 –

回答

0

其实你不应该使用订阅密钥进行身份验证。

我猜APIM默认会转发所有的头文件。但是,如果没有,你可以尝试这样的:

<set-header name="Ocp-Apim-Subscription-Key" exists-action="override"> 
    <value>@(context.Request.Headers.GetValueOrDefault("Ocp-Apim-Subscription-Key", ""))</value> 
</set-header> 
+0

我认为问题在于他们试图弄清楚如何从客户端发送“ocp-blah”头。在SOAP客户端框架中设置HTTP标头并不总是很明显。 –

+0

也是如此。我几天前在APIM论坛上为其创建了一篇文章:https://social.msdn.microsoft.com/Forums/azure/en-US/4a175553-7a3b-4194-bb8d-5bc465fc7546/soap-configuration-with -subscriptionkey-in-url?forum = azureapimgmt&prof = required – Thieme

+0

对,对不起。那是我的错。我昨天回顾了这个问题。它应该在下周开始推出。 –