C# 为什么wcf没有';不允许在没有http模块的情况下,通过传输安全模式进行用户名/密码身份验证

C# 为什么wcf没有';不允许在没有http模块的情况下,通过传输安全模式进行用户名/密码身份验证,c#,.net,wcf,security,wcf-security,C#,.net,Wcf,Security,Wcf Security,我想将传输安全模式与用户名/密码身份验证和ssl结合使用,它可以与windows身份验证配合使用: <transport clientCredentialType="Windows"/> 我在msdn上找到一篇文章,解释了如何使用传输安全模式进行用户名/密码身份验证,但需要自定义http模块。我感兴趣的是为什么没有默认的安全模式,如: <transport clientCredentialType="Username"/> 如果我需要用户名/密码身份验证,我可

我想将传输安全模式与用户名/密码身份验证和ssl结合使用,它可以与windows身份验证配合使用:

<transport clientCredentialType="Windows"/>

我在msdn上找到一篇文章,解释了如何使用传输安全模式进行用户名/密码身份验证,但需要自定义http模块。我感兴趣的是为什么没有默认的安全模式,如:

<transport clientCredentialType="Username"/>

如果我需要用户名/密码身份验证,我可以使用消息安全模式,但是如果所有站点都使用https/ssl进行身份验证,那么在wcf中这样做应该不会有问题。

提前谢谢。

这个问题问错了。WCF允许通过自定义用户名/密码验证使用传输安全性。传输安全模式对给定的传输协议使用标准化的身份验证模式,HTTP没有任何标准化的“用户名”身份验证模式。它具有称为基本身份验证的等效模式:

<security mode="Transport">
  <transport clientCredentialType="Basic" />
</security>

在此场景中,不会对传输协议执行身份验证。它是消息的一部分(它使用WS-Security的UserNameToken配置文件标准)。您可以再次使用自定义的
UserNamePasswordValidator
,这一次它同时适用于自托管和IIS托管的SOAP服务(SOAP是强制性要求)。

问题被问错了。WCF允许通过自定义用户名/密码验证使用传输安全性。传输安全模式对给定的传输协议使用标准化的身份验证模式,HTTP没有任何标准化的“用户名”身份验证模式。它具有称为基本身份验证的等效模式:

<security mode="Transport">
  <transport clientCredentialType="Basic" />
</security>

在此场景中,不会对传输协议执行身份验证。它是消息的一部分(它使用WS-Security的UserNameToken配置文件标准)。您可以再次使用自定义的
UserNamePasswordValidator
,这一次它同时适用于自托管和IIS托管的SOAP服务(SOAP是强制性要求)。

您可以;我想您正在寻找TransportWithMessageCredential-您还可以提供一个自定义身份验证提供程序来提供“主体”(代表用户)啊,这是我想要的链接:我有一个与此相关的问题,我将在稍后发布,以正确表述。在传输安全模式下,当通过ssl传递数据时,路由器、负载平衡器等中间设备是否能够看到解密的消息,以及是否可以进行MITM数据验证?在客户端和服务器之间使用ssl是足够安全的,当存在中间设备时,我的意思是发送数据,如信用卡或其他东西。在一篇msdn文章中,我读到“传输安全模式的缺点是只保护点到点的消息”,这对使用ssl毫无意义。。任何中间设备都可以查看他们的信息并嗅探信用卡号。有证书可以防止这种情况发生;问题是另一个方面:transport/ssl的“问题”是无法在飞行中进行检查。对比消息安全性,它允许您使用加密值和普通值的组合,以便路由器和其他活动硬件可以路由它等。大多数情况下,SSL是好的;我想您正在寻找TransportWithMessageCredential-您还可以提供一个自定义身份验证提供程序来提供“主体”(代表用户)啊,这是我想要的链接:我有一个与此相关的问题,我将在稍后发布,以正确表述。在传输安全模式下,当通过ssl传递数据时,路由器、负载平衡器等中间设备是否能够看到解密的消息,以及是否可以进行MITM数据验证?在客户端和服务器之间使用ssl是足够安全的,当存在中间设备时,我的意思是发送数据,如信用卡或其他东西。在一篇msdn文章中,我读到“传输安全模式的缺点是只保护点到点的消息”,这对使用ssl毫无意义。。任何中间设备都可以查看他们的信息并嗅探信用卡号。有证书可以防止这种情况发生;问题是另一个方面:transport/ssl的“问题”是无法在飞行中进行检查。对比消息安全性,它允许您使用加密值和普通值的组合,以便路由器和其他活动硬件可以路由它等。大多数情况下,SSL是好的。