【发布时间】:2010-06-04 19:24:01
【问题描述】:
我有一个自托管在控制台应用程序中的 WCF 服务。 我需要使用自定义用户名和密码验证器(为此我编写了一个继承自 UserNamePasswordValidator 的类)。 我需要使用 http(不是 https)。 哪个是设置此配置的正确配置(就绑定类型、安全模式而言)? 提前谢谢... 安德里亚 C
【问题讨论】:
标签: .net wcf-security
我有一个自托管在控制台应用程序中的 WCF 服务。 我需要使用自定义用户名和密码验证器(为此我编写了一个继承自 UserNamePasswordValidator 的类)。 我需要使用 http(不是 https)。 哪个是设置此配置的正确配置(就绑定类型、安全模式而言)? 提前谢谢... 安德里亚 C
【问题讨论】:
标签: .net wcf-security
您了解通过使用 HTTP 而不是 HTTPS,用户名和密码将以纯文本形式通过网络发送并且可能很容易被嗅探?
如果您使用的是 .NET 3.5,则可以选择使用自定义 UserNamePasswordValidator 来保护消息或传输通道。如果您使用的是 .NET 3.0,则只能使用带有自定义 UserNamePasswordValidator 的消息安全性。 See How to: Use a Custom User Name and Password Validator 了解更多信息。
例如,如果您使用的是 .NET 3.5 并且想要使用传输安全性,您可以使用以下配置。您必须记住添加一个服务行为,让 WCF 知道您的自定义 UserNamePasswordValidator 类。
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="** The fully qualified type name for your UserNamePasswordValidator **" />
</serviceCredentials>
</behaviors>
</system.serviceModel>
【讨论】: