我在第三方的WCF服务上进行身份验证时遇到问题。我不知道它是如何配置的,对我来说就像一个黑匣子。我唯一知道的是,那些Web服务应使用基本身份验证,但可能不会。
我添加了提琴手,甚至是wireshark来分析这些请求中发生的情况,并发现带有authorization
标头的请求确实得到了身份验证。因此,基本上,使用SoapUI,我可以在那些WCF服务上进行身份验证。
我已经使用svcutil
和指定的配置文件生成了一个测试客户端,如下所示:
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_1" useDefaultWebProxy="false" >
<security mode="Message" >
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://theurl.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_1"
contract="CA_TestMediaSaturn.IDCIntegration" name="BasicHttpBinding_2" />
</client>
另外,我还在代码文件中向客户端添加了授权信息:
client.ClientCredentials.UserName.UserName = "one";
client.ClientCredentials.UserName.Password = "two";
但是我无法将那些Authorization
标头编码为base64。我想知道如何配置我的客户端以获取这些标头,以便在Web服务端获得授权。我确实找到了一篇文章,描述了如何自行制作。但是也许有一种方法可以使它变得容易得多?
更新1:
我刚刚收到了来自第三方供应商的接收器服务配置设置。它可以以某种方式帮助找出错误原因。
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_1" >
<security mode="TransportCredentialOnly">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句