【发布时间】:2011-11-17 22:11:08
【问题描述】:
我的第一个问题是,是否可以将自定义 UserNamePasswordValidor 与 basicHttpBinding 一起使用?
我有一个使用表单身份验证和自定义成员资格提供程序的 asp.net 网站。我意识到我可以使用内置的 System.Web.ApplicationServices.AuthenticationService 来验证我的客户端(一个 WPF 应用程序),但我不想要两个服务调用(一个用于身份验证服务,一个用于逻辑)。
因此,自定义 UserNamePasswordValidator 似乎非常适合这项工作。在我的客户中,我可以拥有:
var service = new MyServiceClient();
service.ClientCredentials.UserName.UserName = "username";
service.ClientCredentials.UserName.Password = "password";
MessageBox.Show(service.SayHello());
我已经看到这与 wsHttpBinding 一起工作,但理想情况下希望在没有 SSL 证书的情况下进行测试。
或者,是否可以在另一个 WCF 服务中使用 AuthenticationService?
为了澄清我上面关于身份验证服务的意思,我不想进行 2 次服务调用,即:
if (authService.Login("username", "password"))
// then call my service
我知道这是一件小事,但客户端应用程序的外部开发人员只需要一项服务来获取凭据并返回所需的数据。
谢谢, 本
【问题讨论】:
-
我也有类似的情况。我需要使用带有 basicHttpBinding 的 UserNamePasswordValidator,无需 SSL (HTTPS),也无需在服务器上安装证书。换句话说,我需要最简单、最不安全的身份验证方法。
-
我不相信可以将 UserNamePasswordValidator 与 basicHttpBinding 一起使用——至少从我所读到的内容来看是这样。最后,我们选择将用户名和密码作为参数传递给每个方法调用并验证凭据。这当然可以在没有 SSL 的情况下使用,但我不建议这样做,并且您的凭据将以明文形式发送。
-
实际上您可以将 UserNamePasswordValidator 与 basicHttpBinding 一起使用。但是,它确实需要您使用
-
WCF 团队很可能认为发送明文密码是一个非常糟糕的主意,以至于他们甚至不想让开发人员能够自爆,因此需要 SSL。
标签: wcf