在 MVC C# 中生成 SOAP Headers
Generating SOAP Headers in MVC C#
我在我的项目中添加了一个服务引用。
我需要按照下面的方式输入安全性 header
<soapenv:Header>
<oas:Security>
<oas:UsernameToken>
<oas:Username>username</oas:Username>
<oas:Password>!password</oas:Password>
</oas:UsernameToken>
</oas:Security>
我该如何设置。如果你看看我是如何设置请求的,是否可以用 headers 以某种方式做同样的事情。
安全 xsds 嵌入在 WSDL 中。
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
和
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd。
服务操作请求按以下方式填充:
MyWebService.PortTypeClient client = new MyWebService.PortTypeClient();
MyWebService.SecurityHeaderType secHeader = new MyWebService.SecurityHeaderType();
RetrieveOperationRequest detailsRequest = new RetrieveOperationRequest ();
detailsRequest.inputParam1 = "1234";
var result = client.RetrieveOperation(secHeader, detailsRequest);
如何生成 Header 部分???
您可以看到我通过了安全检查 header,因为这是 Web 服务所要求的。
谢谢。
我设法找到了 solution/workaround。
这是在 Web.config 文件中设置的。
<client>
<endpoint address="http://localhost:6478/service/1.0"
binding="basicHttpBinding" bindingConfiguration="ServiceEndpointBinding"
contract="TestService.PortType" name="ServiceEndpoint">
<headers>
<ns2:Security xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ns2:UsernameToken>
<ns2:Username>username</ns2:Username>
<ns2:Password>!password</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</headers>
</endpoint>
</client>
不幸的是,我再也找不到这个解决方案的来源了。我正在解决这个问题。
我在我的项目中添加了一个服务引用。
我需要按照下面的方式输入安全性 header
<soapenv:Header>
<oas:Security>
<oas:UsernameToken>
<oas:Username>username</oas:Username>
<oas:Password>!password</oas:Password>
</oas:UsernameToken>
</oas:Security>
我该如何设置。如果你看看我是如何设置请求的,是否可以用 headers 以某种方式做同样的事情。
安全 xsds 嵌入在 WSDL 中。
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
和
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd。
服务操作请求按以下方式填充:
MyWebService.PortTypeClient client = new MyWebService.PortTypeClient();
MyWebService.SecurityHeaderType secHeader = new MyWebService.SecurityHeaderType();
RetrieveOperationRequest detailsRequest = new RetrieveOperationRequest ();
detailsRequest.inputParam1 = "1234";
var result = client.RetrieveOperation(secHeader, detailsRequest);
如何生成 Header 部分???
您可以看到我通过了安全检查 header,因为这是 Web 服务所要求的。
谢谢。
我设法找到了 solution/workaround。
这是在 Web.config 文件中设置的。
<client>
<endpoint address="http://localhost:6478/service/1.0"
binding="basicHttpBinding" bindingConfiguration="ServiceEndpointBinding"
contract="TestService.PortType" name="ServiceEndpoint">
<headers>
<ns2:Security xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ns2:UsernameToken>
<ns2:Username>username</ns2:Username>
<ns2:Password>!password</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</headers>
</endpoint>
</client>
不幸的是,我再也找不到这个解决方案的来源了。我正在解决这个问题。