basichhtpbinding的哪种身份验证模式可用于使用Streaming保护WCF服务?

时间:2010-07-08 05:42:22

标签: wcf wcf-security

有关我服务的详情:

  1. 文件上传服务
  2. Transfermode设置为流
  3. 服务托管在IIS 7中。
  4. 我需要为我的服务提供安全保障。我尝试过使用ntlm和windows secuirty。当我尝试保护我的服务时,我收到以下错误

    “HTTP请求流不能与HTTP身份验证结合使用。禁用请求流或指定匿名HTTP身份验证。”

    我找到了一条说明: 说明:

    你不能做传输身份验证。与流媒体。如果必须使用HTTP请求流,则必须在没有安全性的情况下运行。

    所以我想知道如何保障我的服务?我可以使用哪种secuirty模式进行basichttpbinding?任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:6)

您可以尝试使用TransportWithMessageCredential

<bindings>
  <basicHttpBinding>
    <binding name="securedStream" transferMode="streamed">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

这将传递SOAP标头中的凭据。现在您必须传递用户的名称和密码 - 默认验证是针对Windows帐户的,但您也可以使用成员资格提供程序或自定义密码验证程序。

如果您真的想要NTLM或Windows,则意味着您在同一网络/域中运行客户端和服务器。在这种情况下,请使用Net.tcp。