【问题标题】:WCF Authentication using basicHttpBinding and custom UserNamePasswordValidator使用 basicHttpBinding 和自定义 UserNamePasswordValidator 的 WCF 身份验证
【发布时间】: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


【解决方案1】:

检查 ClearUserName 绑定:http://webservices20.blogspot.com/2008/11/introducing-wcf-clearusernamebinding.html 它应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    我在我当前的几个项目中使用 UserNamePasswordValidator 而不是 basicHttpBinding。效果很好;但是,就像在 cmets 中提到的 Brett Robi 一样,您需要将安全模式设置为 Message 或 TransportWithMessageCredentials 才能调用验证器。这些安全模式需要通过 SSL。

    简而言之 - 是的,您可以通过 basicHttpBinding;但是,仅适用于 SSL。移除安全模式和 SSL 会移除调用凭证验证。

    【讨论】:

    • 如果这是一项私人服务,您应该能够使用自定义的非 SSL 证书。然后,您可以将证书嵌入到您的应用程序中。通过使用消息安全选项,我所知道的还有其他不需要 SSL 的方法。
    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多