c# - 在 MVC C# 中生成 SOAP header

标签 c# security model-view-controller soap wsse

我在我的项目中添加了一个服务引用。

我需要按照下面的方式传入安全 header

<soapenv:Header>
  <oas:Security>
      <oas:UsernameToken>
        <oas:Username>username</oas:Username>
        <oas:Password>!password</oas:Password>
     </oas:UsernameToken>
  </oas:Security>

我该如何设置。如果您查看我如何设置请求,是否可以以某种方式对 header 执行相同的操作。

安全 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 ,因为这是 Web 服务所必需的。

谢谢。

最佳答案

我设法找到了解决方案/解决方法。

这是在 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>

不幸的是,我再也找不到这个解决方案的来源了。我只是在解决这个问题。

关于c# - 在 MVC C# 中生成 SOAP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46089979/

相关文章:

c# - 如何在 ApiController 中检索 POST 正文数据?

php - 将应用程序与应用程序库、共享库、组件等分离

asp.net-mvc - 在 input-group-addon span 和 form-control 之间获得一个奇怪的空间

java - Spring MVC 与 FreeMarker : locale specific templates

c# List<Dictionary<string,string>> 添加唯一字典

c# - 什么是{get;放; } C# 中的语法?

c# - Html.EditorFor 设置默认值

c - 我可以提供什么输入来导致缓冲区溢出,从而导致另一个变量发生精确变化?

spring - 配置 Spring Boot 以防止 Logjam 攻击

osgi - OSGi 包中的 Java Web 应用程序过滤器的等价物是什么?