我已经从WSDL文件生成了WCF客户端服务代理,该文件调用了第三方Java Web服务。现在,我需要配置绑定和代理来调用Web方法。
但是,我只有以下SOAP信息,用户名和密码以及客户端证书。我该如何解决需要做的事情?
是否有任何“反向配置”应用程序或教授所需技能的网站?
我想我的意思是“消息的这一部分转换为这种配置”。有人可以帮忙吗?
对于同一个项目,我问了这个问题,所以如果有人知道向第三方要什么,那也会有所帮助(我将其描述为“通信信息”,但我认为不够具体) 。
<env:Envelope xmlns:env=http://schemas.xmlsoap.org/soap/envelope/xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://etis.ford.com/services/fsa/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" env:mustUnderstand="1">
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-messagesecurity-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="token-2-1172677451503-9243153">MIICDTCC……..k/j8lARlQ==</wsse:BinarySecurityToken>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#element-1-1172677451465-2619907">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>k_REDACTED_=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>k_REDACTED_=</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference wsu:Id="reference-3-1172…..1504-94…25">
<wsse:Reference URI="#token-2-117…..51503-9…3" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</env:Header>
<env:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"wsu:Id="element-1-1172677451465-2619907">
<ns0:list>
<String_1>k_REDACTED_</String_1>
</ns0:list>
</env:Body>
</env:Envelope>
以下内容已生成到我的app.config中。它没有例外,但是我得到的响应(格式正确的XML)包含“无”的对象-实际响应看起来像我发送的内容的镜像。
<bindings>
<basicHttpBinding>
<binding name="MyBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myurl"
binding="basicHttpBinding" bindingConfiguration="MyBinding"
contract="wsServiceProxy.ServiceName" name="MyServicePort" />
</client>
请求:
POST http://www.thehost.com/
Content-Type: text/xml; charset=utf-8
VsDebuggerCausalityData: uIDPo2dteAUjcNNDmQ28Qhsz8KcAAAAARUELWtvXc06cOf2eOs23AWKlzgCLFBNImUOop7Ho+PoACQAA
SOAPAction: ""
Host: www.thehost.com
Content-Length: 299
Expect: 100-continue
Connection: Keep-Alive
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<list xmlns="http://thehost.com">
<String_1 xmlns="">MyString</String_1>
</list>
</s:Body>
</s:Envelope>
响应:
HTTP/1.1 200 OK
Date: Thu, 24 Oct 2013 14:17:20 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/1.0.0a mod_jk/1.2.31
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
VsDebuggerCausalityData: uIDPo2dteAUjcNNDmQ28Qhsz8KcAAAAARUELWtvXc06cOf2eOs23AWKlzgCLFBNImUOop7Ho+PoACQAA
SOAPAction: ""
host: www.thehost.com
Expect: 100-continue
connection: Keep-Alive, Keep-Alive
Content-Length: 299
Keep-Alive: timeout=2, max=100
Content-Type: text/xml;charset=utf-8
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
<s:Body xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<list xmlns='http://thehost.com'>
<String_1 xmlns=''>MyString</String_1>
</list>
</s:Body>
</s:Envelope>
使用此自定义绑定:
<customBinding>
<binding name="NewBinding0">
<textMessageEncoding messageVersion="Soap11" />
<security authenticationMode="MutualCertificate" includeTimestamp="false"
messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
<secureConversationBootstrap />
</security>
<httpTransport />
</binding>
</customBinding>
确保将您的合同装饰为仅签署:
[System.ServiceModel.ServiceContractAttribute(ConfigurationName=..., ProtectionLevel=System.Net.Security.ProtectionLevel.Sign)]
除了客户端证书之外,您还需要配置服务证书。您(可能)没有这样的证书,可以在其中配置任何虚拟证书(甚至与客户端相同)。
问题内容: 我想将所有内容都保留在virtualenv中。OpenCV有可能吗?我可以从头开始构建,我是否只需要先设置virtualenv,然后使用特殊的编译标志告诉它安装在哪里? 问题答案: 我发现解决方案是必须将cv2.so和cv.py复制到运行virtualenv的目录,然后pip install numpy。为此,我使用了Ubuntu12.04。
web服务提供者共享了soap消息的原始xml以突出显示ws-security头。使用soapUI,我已经能够创建完全相同的wsse-Security头,如下所示: 在soapUI中,在“WS-Security Configurations”下,我添加了密钥库(带有我的私有证书的jks)和信任库(带有CA根公钥的jks)。最后,我添加了带有以下设置的“传出WS-Security配置”。 使用此WS
问题内容: 我凭经验发现 绑定到当前计算机上的所有网络接口(而不仅仅是localhost-127.0.0.1或主机名),但是我无法找到说明这是可以保证的文档。 问题:在Java中绑定到0.0.0.0的定义将始终绑定到所有网络接口? 问题答案: 使用将仅绑定到启用IPv4的接口。但是,如果绑定到,则假定您的TCP / IP堆栈(和Java)启用了IPv4兼容的IPv6套接字,则该协议应涵盖所有IPv
问题内容: 我正在尝试确定给定类型()是否为可选类型,我正在使用此测试 但它始终返回false。 那么有什么办法可以做到这一点? 问题答案: 假设您要执行的操作是这样的: 可悲的是,swift当前(从Swift 2开始)不支持协方差和协变,并且不能直接针对类型进行类型检查: 一种替代方法是使特定协议扩展,并检查该类型:
来自以下来源: https://www.amazon.com/java-complete-reference-herbert-schildt/dp/0071808558 第8章:在继承中使用final 对于私有、静态、最终方法,应该使用早期(静态)方法绑定 所以正如我所认为的,这两个方法应该有不同的绑定类型。检查字节码: 在这里我看到了两个有害的指示。那么有什么方法可以确定类字节码使用了哪种绑定呢
我想在foreach内部的模型中传递一个数组的范围。 我重新创建了一个示例: 周围的工作 我发现是传递所有的列表,并在子视图内部执行范围。但我不想这样做,因为数组非常大: