Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Api管理soap直通URL中添加标头?_C#_Azure_Asp.net Web Api_Wsdl_Azure Api Management - Fatal编程技术网

C# 如何在Api管理soap直通URL中添加标头?

C# 如何在Api管理soap直通URL中添加标头?,c#,azure,asp.net-web-api,wsdl,azure-api-management,C#,Azure,Asp.net Web Api,Wsdl,Azure Api Management,我正在使用Azure API管理Soap传递URL(端点) 它具有用于身份验证的订阅密钥 但当我添加wsdl时,web端点只有基址而没有头。在web服务调用之后,我得到了一个错误: {“HTTP请求未经客户端身份验证方案“匿名”授权。 从服务器接收到的身份验证标头为'Key realm=\'https:\url\',name=\'Key\',type=\'header\'。'} 我想我错过了头球 如何传递头来调用web api端点? 我们不能在web.config中提到它。实际上,您不应该使用订

我正在使用Azure API管理Soap传递URL(端点) 它具有用于身份验证的订阅密钥

但当我添加wsdl时,web端点只有基址而没有头。在web服务调用之后,我得到了一个错误:

{“HTTP请求未经客户端身份验证方案“匿名”授权。
从服务器接收到的身份验证标头为'Key realm=\'https:\url\',name=\'Key\',type=\'header\'。'}

我想我错过了头球

如何传递头来调用web api端点?
我们不能在web.config中提到它。

实际上,您不应该使用订阅密钥进行身份验证

我猜APIM默认情况下会转发所有标题。但如果没有,您可以尝试以下方法:

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

@(context.Request.Headers.GetValueOrDefault(“Ocp Apim订阅密钥”,简称“”)

只是确认一下,您正在构建一个Web API,希望调用SOAP端点。您已经将WSDL导入到APIM中,当您从ASP.NET Web API调用APIM时,会返回上面的错误。这是否正确?不确定这是否与MSDN论坛上报告的问题相同,但目前APIM Soap Passthrough和使用subscription key查询参数存在错误。我们目前正在进行修复。我认为问题是他们正在试图找出如何从客户端发送“ocp blah”头。在SOAP客户端框架中设置HTTP头并不总是显而易见的,这也是事实。几天前,我在APIM论坛上为此写了一篇帖子:是的,很抱歉。那是我的错。我昨天检查了修复程序。它将于下周开始推出。谢谢您的回答。实际上,我在调用APIM soap端点时找到了中间点,我还在点网解决方案中添加了订阅键。我使用web引用添加了web api。在reference.cs中,我传递了header(Soap APIM的订阅密钥)