通过asp.net站点在线连接到sql server的最佳方法

时间:2013-01-17 13:49:26

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

情况:

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

其他信息:

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

问题:

  1. 这样做的最佳方式是什么?
  2. 最好的意思是,安全且易于实施

    可能的解决方案:

    1. 客户端路由器上的端口转发和我们的路由器仅允许我们的IP访问
    2. 港口敲门实施
    3. VPN
    4. 非常感谢任何问题的评论和关注!

2 个答案:

答案 0 :(得分:1)

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

  • 您无法控制另一侧的网络
  • 客户可以删除/更改/删除他们的数据库等
  • 通常,大多数人都不乐意允许连接到数据库 互联网,即使它是由防火墙规则或V​​PN保护的。
  • 不愿意允许从外部来源对内部资源进行身份验证

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

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

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

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

<强>服务: 您是否可以在本地存储数据并为客户提供接收数据的方式,而不是直接将数据写入数据库?例如每个客户的RSS / XML提要?

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

答案 1 :(得分:1)

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

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

另一个选择是让您的网站成为“盒装”产品,并将软件出售给客户,以便他们安装在网络内部并在局域网上运行,而不必让您访问。< / p>