其他分享
首页 > 其他分享> > 在Visual Studio 2008中将Soap Header添加到Soap请求中

在Visual Studio 2008中将Soap Header添加到Soap请求中

作者:互联网

我正在尝试使用第三方Web服务(因此我无权访问Web服务代码).
在Visual Studio 2008中,我创建了一个新的网站项目(ASP和c#),并添加了Web参考(不是Web服务!所以我猜它不是WCF服务…对吗?).

问题是,从Web服务的文档中,我知道每个肥皂请求都必须使用以下信封和标头发送,您能告诉我如何在我的肥皂请求中添加此消息吗?
我发现的所有解决方案都需要修改Web服务源或代理,我不能这样做,因为我无权访问Web服务源,并且Visual Studio 2008中客户端中的Web服务代理为只读.临时文件!

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" soap:mustUnderstand="1">
<wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Username>gimme.data@stats.com</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Ima5tatto</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body xmlns:ns2="http://neighbourhood.statistics.gov.uk/nde/v1-0/discoverystructs">
<ns2:AreaAtLevelElement>
<AreaIdWithLevelType>
<AreaId>276704</AreaId>
<LevelTypeId>12</LevelTypeId>
</AreaIdWithLevelType>
</ns2:AreaAtLevelElement>
</soap:Body>
</soap:Envelope>

解决方法:

您可以使用endpoint元素中的headers元素将标头静态添加到配置文件中的消息中. headers元素的每个子元素将照原样复制到邮件的标题中.

标签:visual-studio-2008,asmx,web-services,c,soap
来源: https://codeday.me/bug/20191210/2102827.html