我想检索需要服务操作的用户的用户名和密码。
为此,我需要指定以下配置:
<binding name="NewBinding0">
<security mode="Message">
<message clientCredentialType="UserName" negotiateServiceCredential="false"
establishSecurityContext="false" />
</security>
</binding>
现在它需要x509证书。我可以禁用它,或修改安全模式或消息凭证类型,但提供相同的功能吗?
答案 0 :(得分:1)
当您指定邮件安全性时,它始终需要服务证书。原因是用户名和密码应该通过安全通道发送,否则密码以纯文本形式发送,网络上的每个人都可以看到。
所有默认绑定将允许您仅在使用HTTPS(安全模式设置为TransportWithMessageCredential
时 - 它还需要证书)或者您正在使用需要服务证书的WS-Security时才发送用户名和密码(安全模式设置为Message
)。
在WCF 4中(以及早期版本中的特殊KB补丁)you can create custom binding,其中用户名和密码可以通过不安全的通道发送,但几乎与无安全性相同。只有当您的频道受到VPN等其他基础设施的保护时,才应该使用它。