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

Goo*_*ler 3 wcf wcf-security

我的服务详情:

  1. 文件上传服务
  2. Transfermode设置为stream
  3. 服务托管在IIS 7中.

我需要为我的服务提供安全保障.我尝试过使用ntlm和windows secuirty.当我尝试保护我的服务时,我收到以下错误

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

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

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

所以我想知道如何保障我的服务?我可以使用哪种secuirty模式与basichttpbinding?谁能帮我这个?

Lad*_*nka 6

您可以尝试使用TransportWithMessageCredential:

<bindings>
  <basicHttpBinding>
    <binding name="securedStream" transferMode="streamed">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)

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

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