带有传输/ Windows帐户身份验证的SOAP客户端请求返回无法找到授权标头错误

时间:2016-09-16 15:53:46

标签: c# soap

我必须使用传输和Windows帐户身份验证模式请求SOAP服务。 无论我使用何种方法,我总是会得到相同的错误:"无法找到授权标题"。 我使用的是Visual Studio Professional 2015和.NET Framework 4.6.1。

为了创建客户端和发送请求,我使用:

var client = new MyServiceClient();
client.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
client.MyRequest();

我试过了:

  1. 在app.config中使用带有默认参数的自动生成的服务引用。

    <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IMyService">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://xxxxxxxx:xxxxx/" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService" contract="Service.IMyService" name="BasicHttpBinding_IMyService" />
    </client>
    </system.serviceModel>
    
  2. 通过

    修改<security mode="Transport" />
    <security mode="Transport">
      <transport clientCredentialType="Windows" />
    </security>
    
  3. 删除app.config中的system.serviceModel部分并按代码使用配置

    var binding = new BasicHttpBinding
    {
        Security =
        {
            Mode = BasicHttpSecurityMode.Transport,
            Transport = {ClientCredentialType = HttpClientCredentialType.Windows}
        }
    };
    var endpoint = new EndpointAddress(new Uri("https://xxxxxxxx:xxxxx/"));
    this.client = new FrontServiceCvaClient(binding, endpoint);
    
  4. 仅用于测试目的,我还手动设置登录/密码

    this.client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(username, password);
    
  5. 最后一件事:我得到了跟踪日志,实际上,我没有在标题中看到任何身份验证提及

    System.Net Information: 0 : [22264] ConnectStream#56930466 - Sending headers
    {
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://xxxxxxxxxx/IMyService/MyRequest"
    Host: xxxxxxxx:xxxxx
    Content-Length: 94938294
    Expect: 100-continue
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    }.
    

    对于所有这些情况,我总是有同样的错误。 我无法理解为什么凭证似乎没有添加到已发送的请求中。 提前感谢任何帮助或建议,以了解这种行为。

0 个答案:

没有答案