【问题标题】:WCF Security - Transport Level Security with username passwordWCF 安全性 - 使用用户名密码的传输级安全性
【发布时间】:2013-06-25 05:38:54
【问题描述】:

我希望为 Web 服务提供安全性。我最初使用具有传输安全性 (ssl) 和消息安全性的 BasicHttpBinding(为自定义用户名密码验证传递用户名和密码)...

但是 Web 服务的消费者说他们不能在带有安全细节的 soap 消息中添加标头......并说他们希望在服务的通信通道上传递它。

是否可以通过 WCF 的传输安全性对用户进行自定义验证?我无法让它工作:(

有什么建议吗?

谢谢 尼尔

【问题讨论】:

    标签: c# wcf wcf-binding wcf-security


    【解决方案1】:

    我认为您的消费者要求基本身份验证。也就是说,身份验证令牌在 HTTP 授权标头中而不是在 SOAP 安全标头中传递。凭据的机密性将仅由传输 (HTTPS) 提供。

    这个的绑定配置是:

    <basicHttpBinding>
       <binding name="HTTPSwithBasicAuthentication">
          <security mode="Transport">
             <transport clientCredentialType="Basic" />
          </security>
       </binding>
    </basicHttpBinding>
    

    在客户端,您可以像这样设置凭据

    serviceClient.ClientCredentials.UserName.UserName = "username";
    serviceClient.ClientCredentials.UserName.Password = "password";
    

    假设您的服务托管在 IIS 中,请记住在 IIS 配置中启用基本身份验证。

    要对用户进行实际授权,您可以实现自定义ServiceAuthorizationManager 来包含您的授权逻辑。网上有很多关于如何完成最后一部分的示例。

    或者,如果适合您的应用程序,您可以在标准 ASP.Net 成员资格提供程序中进行配置。

    http://msdn.microsoft.com/en-us/library/bb398990(VS.100).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2011-06-17
      • 1970-01-01
      • 2014-05-22
      • 2012-04-18
      • 1970-01-01
      相关资源
      最近更新 更多