Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用消息安全性和客户端凭据类型的Docker容器内部WCF“;“窗口”;_C#_.net_Windows_Wcf_Docker - Fatal编程技术网

C# 使用消息安全性和客户端凭据类型的Docker容器内部WCF“;“窗口”;

C# 使用消息安全性和客户端凭据类型的Docker容器内部WCF“;“窗口”;,c#,.net,windows,wcf,docker,C#,.net,Windows,Wcf,Docker,我正在尝试在docker容器内运行WCF服务,使用带有安全模式消息和客户端凭据类型Windows的绑定。比如: ... <bindings> <wsHttpBinding> <binding name="wsHttpBinding_IService1"> <security mode="Message"> <message clientCredentialType="Windows"/>

我正在尝试在docker容器内运行WCF服务,使用带有安全模式
消息
和客户端凭据类型
Windows
的绑定。比如:

...
<bindings>
  <wsHttpBinding>
    <binding name="wsHttpBinding_IService1">
      <security mode="Message">
        <message clientCredentialType="Windows"/>
      </security>
    </binding>   
  </wsHttpBinding>
</bindings>
...
。。。
...
我已经成功创建并启动了该容器,多亏了gMSA和找到的教程,我可以在容器内的服务中使用Windows身份验证对SQL Server 2016发出SQL命令

到目前为止还不错,但是当使用docker主机上运行的客户端连接到容器内的服务时,我收到了错误消息:

System.ServiceModel.Security.SecurityNegotiationException: The server has rejected the client credentials System.ServiceModel.Security.SecurityNegotiationException: 服务器已拒绝客户端凭据 据我所知,这是因为docker容器正在使用其主机名(在使用
docker exec
检查后,它似乎是某个散列值)向域控制器请求有效凭据。由于容器不是域的一部分(即使它认为这要归功于gMSA),域控制器拒绝请求,客户端接收上述消息

所以我的问题是:这是真的发生了什么,还是我错过了什么?有没有办法让windows身份验证与上述绑定一起工作,或者我的方法在概念上有缺陷?也许有另一种方法可以让docker内部使用WCF进行Windows身份验证

我找不到任何关于我的问题的线索,除了没有收到任何答案。因此,任何帮助都将不胜感激