【问题标题】:Best way to connect to sql server online via asp.net site [closed]通过asp.net站点在线连接到sql server的最佳方式[关闭]
【发布时间】:2013-01-17 13:49:26
【问题描述】:

情况:

我有一个开发的 asp.net 网站,位于我们路由器后面的服务器上,该网站需要能够通过互联网从我们的服务器连接到客户端 sql 服务器实例。

附加信息:

我的 asp.net 网站是一个数据验证工具,它针对个人数据库运行数百条 sql 语句来验证其中的数据。

问题:

  1. 最好的方法是什么?

我的意思是,安全且易于实施

可能的解决方案:

  1. 客户端路由器和我们的路由器上的端口转发只允许我们的 IP 访问
  2. 端口敲门实现
  3. VPN

非常感谢任何问题和疑虑!

【问题讨论】:

  • 最适合什么?您对什么标准感兴趣?
  • 恭敬地,我认为他说,“我的意思是,最好的意思是安全且易于实施”
  • 平心而论,我在他提出问题后进行了编辑
  • 这个应用程序会被众多客户用来使用(甚至管理)他们的数据库吗?或者,您要与之共享数据的“提供者”数量是否有限?
  • 它将被众多客户使用(我们确实限制访问通过用户帐户运行)

标签: c# asp.net sql-server networking


【解决方案1】:

您的 ASP.NET 应用程序真的需要连接到客户端数据库吗? 这听起来不是个好主意。

  • 你无法控制对方的网络
  • 客户可能会关闭/更改/删除他们的数据库等
  • 通常,大多数人不会乐意允许通过以下方式连接到数据库 即使互联网受到防火墙规则或 VPN 的保护。
  • 不愿允许从外部来源对内部资源进行身份验证

一些替代解决方案可能是:

投票: 将在客户端运行并与您的 ASP.NET 应用程序联系、接收数据然后将其插入数据库的应用程序。这听起来与您的初衷相似,但略有不同。客户端正在启动通信,因此您无需担心连接性,本地应用程序还可以执行数据库检查/业务规则/应用安全性,例如与您的 ASP.NET 应用程序的 HTTPS 通信等。

客户端/服务器: 与轮询解决方案类似,您可以在客户端有另一个应用程序来设置通信(可能是 WCF net TCP / http SOAP),客户端可以注册到您的 ASP.NET 应用程序,然后您可以随时向它发送数据在推式架构中。

上述两种解决方案都只是简单的想法,并非完整的实施指南,但它可能会帮助您探索其他途径。

服务: 您能否将数据存储在本地,并为您的客户提供一种接收数据的方式,而不是将其直接写入他们的数据库?例如每个客户端的 RSS / XML 提要?

如果替代方案不适合您的实施要求,并且您必须连接到许多客户端基础架构,我认为您需要支持上面列出的所有选项,具体取决于他们的内部 IT 政策(如果他们甚至被允许接受外部连接)他们可以规定他们更喜欢哪一个。

【讨论】:

    【解决方案2】:

    我工作的公司目前使用多种系统来执行此操作。我们一直只在我们的网络和客户端之间使用私人 B2B VPN 连接,只打开我们的软件所需的端口。如果客户愿意,这可能是您最好和最简单的连接形式。我们将此连接限制为仅限有线连接,并且仅限来自已知为公司机器的 MAC 地址。但您可以根据需要对您的应用程序进行微调。

    如果您正在寻找不那么侵入性的东西,我建议您编写一个 WCF 服务,将您需要的数据公开到您的网站并让客户安装,如果他们正在寻找,大多数客户都愿意这样做至少根据我的经验,从另一家公司购买服务。

    另一种选择是让您的网站成为“盒装”产品,并将软件出售给客户,让他们安装在他们的网络中并在 LAN 上运行,而不必授予您访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2018-07-26
      • 2018-08-05
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多