【问题标题】:How do I secure transport for .Net 2.0 client to 3.5 standalone WCF webservice?如何保护 .Net 2.0 客户端到 3.5 独立 WCF Web 服务的传输?
【发布时间】:2010-12-10 18:15:48
【问题描述】:

我们销售的销售点系统通常需要一个后台服务器和多个终端。

我们正在开发一种新产品,该产品需要终端通过网络服务与后台机器进行通信。后台通过 WCF 实现为独立的 Windows 服务。终端软件是一个 c++ 应用程序,它通过非托管/托管桥接器调用我们的 .Net DLL。

我们遇到的真正问题是,由于终端资源的限制,我们无法超越 .Net 2.0(因此无法使用 WCF)。就让两者通过 BasicHttpBinding 相互交谈而言,这不是问题。但是,添加加密一直是一个令人头疼的问题。

我已经能够使基本的自签名证书正常工作(由于服务器交给客户,CA 就没有问题了。)问题是我必须执行的步骤对我们来说不切实际可交付的产品。

好的,长序言 - 底线... WCF 独立 Web 服务,.Net 2 客户端,在 Intranet 上运行,只需要传输加密。我们需要能够使完整的安装自动化。此外,我们并没有与 SSL 结婚,但考虑到我们的限制,它似乎是唯一可行的解​​决方案。任何帮助或建议将不胜感激。

【问题讨论】:

    标签: .net wcf encryption ssl


    【解决方案1】:

    这是我前段时间问的一个类似问题:

    How to configure security when calling WCF Service from .Net 2.0 Client

    我最终做的是以下效果很好 - 使用 BasicHttpBinding:

    1. 使用 SSL 保护传输
    2. 客户端首先通过调用 Web 服务上的 Login 方法登录到 Web 服务。如果登录成功,它会向客户端返回一个加密的 FormsAuthenticationTicket。
    3. 然后,客户端必须为每个 Web 服务调用提供表单身份验证票证。每种方法都会检查票证是否有效,如果有效,它就会工作。如果票证已过期或无效,客户必须重新进行身份验证。

    这不会让您远离 SSL,但可能会让您更接近您的需求。一种选择可能是手动加密您发送到存储服务器后端的数据/对象以避免 SSL。

    【讨论】:

    • 谢谢,但我不太关心身份验证,只是加密传输。我们已经有验证客户的机制。我实际上考虑过只加密数据,但如果可以的话,我会尽量避免在代码中做任何事情。
    • 门店服务器和终端是否在同一个网络?
    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 2018-09-12
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多