我在控制台应用程序中托管了一个WCF服务。 我需要使用自定义用户名和密码验证器(为此,我编写了一个继承自UserNamePasswordValidator的类)。 我需要使用http(而不是https)。 设置此配置的正确配置(在绑定类型,安全模式方面)是哪个? 提前完成了... Andrea C
答案 0 :(得分:1)
您了解通过使用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>