gpt4 book ai didi

asp.net - 使用 ASP.NET 3.5 WCF 在 SOAP 中设置 header

转载 作者:行者123 更新时间:2023-12-04 06:55:45 25 4
gpt4 key购买 nike

我对 SOAP 还很陌生,所以请放轻松。我正在尝试设置一个接受以下 header 格式的 SOAP 服务:

<soap:Header>
<wsse:Security>
<wsse:UsernameToken wsu:Id='SecurityToken-securityToken'>
<wsse:Username>Username</wsse:Username>
<wsse:Password>Password</wsse:Password>
<wsu:Created>Timestamp</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>

我将此服务合并到的应用程序是一个 ASP.NET 3.5 Web 应用程序,并且我已经使用 WCF 设置了一个 SOAP 端点。我已经设置了一个基本服务,以确保 WCF 工作正常(不考虑标题)。听说上面的格式遵循WS-Security,所以我在web.config中添加了WSHttpBinding:
<service name="Nexternal.Service.XMLTools.VNService"
behaviorConfiguration="VNServiceBehavior">
<!--The first endpoint would be picked up from the confirg
this shows how the config can be overriden with the service host-->
<endpoint address=""
binding="wsHttpBinding"
contract="Nexternal.Service.XMLTools.IVNService"/>
</service>

我下载了一个测试工具 (soapUI) 并粘贴了带有上述标题的测试消息,它返回 400 Bad Request 错误。

...对于它的值(value),我正在使用 IIS7 运行 Visual Studio 2008。

我觉得我在兜圈子,所以任何帮助都会很棒。提前致谢。

最佳答案

弄清楚了。我能够使用 MessageContracts 自定义在 WSDL 中生成的内容( http://msdn.microsoft.com/en-us/library/ms730255.aspx )。这允许我指定标题的格式。对于包含子节点的每个节点,我创建了一个类来表示该节点并使用 .NET 的序列化工具(例如 XmlElementAttributeXmlArrayAttribute 等)来指定这应该如何反射(reflect)在生成的 WSDL 中。 . DataContract虽然根据我的理解也可以使用 DataContract仅适用于基本格式,不允许您真正深入了解它的格式。

希望这可以帮助任何有类似问题的人。

如果任何对 SOAP 有更多了解的人发现了缺陷,请告诉我。非常感谢输入。

关于asp.net - 使用 ASP.NET 3.5 WCF 在 SOAP 中设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2580249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com