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

发布于 2024-09-08 18:21:37 字数 363 浏览 5 评论 0原文

有关我的服务的详细信息:

  1. 文件上传服务
  2. 传输模式设置为流
  3. 服务托管在 IIS 7 中。

我需要为我的服务提供安全性。我尝试过 ntlm 和 windows secuirty。当我尝试保护我的服务时,出现以下错误

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

我找到了这样的描述: 描述:

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

所以我想知道如何确保我的服务?我可以在 basichttpbinding 中使用哪种安全模式?有人可以帮助我吗?

Details about my service:

  1. A file upload service
  2. Transfermode is set to stream
  3. Service is hosted in IIS 7.

I need to provide secuirty to my service. I have tried with ntlm and windows secuirty.I was getting the following error when i am trying to secure my service

"HTTP request streaming cannot be used in conjunction with HTTP authentication. Either disable request streaming or specify anonymous HTTP authentication."

I have found a description stating that:
Description:

You can't do transport auth. with streaming. If you have to use HTTP request streaming, you'll have to run without security.

So i wish to know how can i secure my service? Which secuirty mode can i use with basichttpbinding?Can anyone pls help me on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微暖i 2024-09-15 18:21:37

您可以尝试使用 TransportWithMessageCredential

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

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

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

You can try using TransportWithMessageCredential:

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

This will pass credentials in SOAP header. Now you must either pass user's name and password - default validation is against Windows accounts but you can also use Membership provider or custom password validator.

If you really want NTLM or Windows then it means you are running both client and server in the same network / domain. In such case use Net.tcp instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文