TMG 基本上是一个阻止您传入请求的公司防火墙,因此您首先必须与 TMG 协商,然后将您的请求发送到您的 WCF 服务。
这是我从处理类似问题的以下 MSDN 博客条目中获取的示例绑定:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://www.myservice.com/Service1.svc"
behaviorConfiguration="myEndpointBehaviour"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1"
contract="Client.IService1"
name="BasicHttpBinding_IService1" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="myEndpointBehaviour">
<clientCredentials>
<clientCertificate
storeName="My"
storeLocation="CurrentUser"
findValue="CN=WCF client cert 2" />
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
如果您的服务没有启用任何消息级安全性,则此绑定已经完成。
顺便说一句,请确保您拥有正确的证书以访问该服务,登录名和密码可能意味着消息级安全性。