使用BasicHttpBinding和Authorization标头对WCF服务进行身份验证

强尼

我在第三方的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>
亚伦·纳夫(Yaron Naveh)

您应该设置mode =“ Transport”而不是“ Message”。这将生成授权标头。当前设置是消息安全性,因此身份验证位于SOAP内部。

编辑:似乎您需要预先验证。通常,wcf首先不会发送授权标头,并且如果服务返回要执行的质询,则它将再次发送带有标头的消息。某些服务器不支持此质询机制,因此一开始就需要发送授权标头。这在.net 2中称为预身份验证。不幸的是,wcf不支持它。但您可以自己做:首先将安全模式设置为“无”,以便WCF完全不发送安全性。然后在此处查看示例,如何自己将此标头添加到wcf调用中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匿名身份验证不适用于WCF服务:“ .....从服务器收到的身份验证标头为”“

来自分类Dev

Soap身份验证标头和使用PHP的请求

来自分类Dev

Soap身份验证标头和使用PHP的请求

来自分类Dev

如何使用Spring Boot使用OAuth1.0和自定义标头对API进行身份验证

来自分类Dev

nginx代理请求以身份验证http请求中的标头值进行服务

来自分类Dev

具有WS-Security,签名标头,身份验证令牌和主体加密的WCF Web服务客户端

来自分类Dev

为什么我的REST服务.NET客户端发送不带身份验证标头的每个请求,然后使用身份验证标头重试?

来自分类Dev

使用诸如WebAPI之类的Auth标头进行身份验证,但在MVC中

来自分类Dev

使用PHP发送身份验证标头

来自分类Dev

如何在DataZen中使用标头身份验证?

来自分类Dev

使用 fetch 或 axios 发送身份验证标头

来自分类Dev

关于使用 twitter 身份验证标头的错误身份验证数据

来自分类Dev

PHP Soap身份验证标头

来自分类Dev

Angular - 身份验证标头

来自分类Dev

使用Windows服务上托管的WCF对ADFS进行身份验证

来自分类Dev

使用Windows服务上托管的WCF针对ADFS进行身份验证

来自分类Dev

在身份服务器中使用cookie和令牌进行共享身份验证

来自分类Dev

如何使用AWS身份验证保护我的WCF服务

来自分类Dev

使用Kerberos身份验证的WCF自托管Web服务

来自分类Dev

身份验证标头与授权标头?

来自分类Dev

如何从.NetClient将身份验证标头(基本)传递给OData服务

来自分类Dev

通过HTTP标头进行Symfony2身份验证

来自分类Dev

如何为我的方案强制进行Soap标头身份验证?

来自分类Dev

通过HTTP标头进行Symfony2身份验证

来自分类Dev

如何在TinyProxy中正确添加标头以在Squid中进行身份验证

来自分类Dev

WCF服务身份验证+ Sitecore

来自分类Dev

使用Azure Active Directory和Azure移动服务对PHP Web App进行身份验证

来自分类Dev

使用Liferay在REST服务中进行身份验证和授权

来自分类Dev

使用 Ajax 和 Postman 代码进行身份验证,但服务器无法识别变量。

Related 相关文章

  1. 1

    匿名身份验证不适用于WCF服务:“ .....从服务器收到的身份验证标头为”“

  2. 2

    Soap身份验证标头和使用PHP的请求

  3. 3

    Soap身份验证标头和使用PHP的请求

  4. 4

    如何使用Spring Boot使用OAuth1.0和自定义标头对API进行身份验证

  5. 5

    nginx代理请求以身份验证http请求中的标头值进行服务

  6. 6

    具有WS-Security,签名标头,身份验证令牌和主体加密的WCF Web服务客户端

  7. 7

    为什么我的REST服务.NET客户端发送不带身份验证标头的每个请求,然后使用身份验证标头重试?

  8. 8

    使用诸如WebAPI之类的Auth标头进行身份验证,但在MVC中

  9. 9

    使用PHP发送身份验证标头

  10. 10

    如何在DataZen中使用标头身份验证?

  11. 11

    使用 fetch 或 axios 发送身份验证标头

  12. 12

    关于使用 twitter 身份验证标头的错误身份验证数据

  13. 13

    PHP Soap身份验证标头

  14. 14

    Angular - 身份验证标头

  15. 15

    使用Windows服务上托管的WCF对ADFS进行身份验证

  16. 16

    使用Windows服务上托管的WCF针对ADFS进行身份验证

  17. 17

    在身份服务器中使用cookie和令牌进行共享身份验证

  18. 18

    如何使用AWS身份验证保护我的WCF服务

  19. 19

    使用Kerberos身份验证的WCF自托管Web服务

  20. 20

    身份验证标头与授权标头?

  21. 21

    如何从.NetClient将身份验证标头(基本)传递给OData服务

  22. 22

    通过HTTP标头进行Symfony2身份验证

  23. 23

    如何为我的方案强制进行Soap标头身份验证?

  24. 24

    通过HTTP标头进行Symfony2身份验证

  25. 25

    如何在TinyProxy中正确添加标头以在Squid中进行身份验证

  26. 26

    WCF服务身份验证+ Sitecore

  27. 27

    使用Azure Active Directory和Azure移动服务对PHP Web App进行身份验证

  28. 28

    使用Liferay在REST服务中进行身份验证和授权

  29. 29

    使用 Ajax 和 Postman 代码进行身份验证,但服务器无法识别变量。

热门标签

归档