2012-04-04 53 views
0

客户端计算机无权访问SQL Server端口,并且无法打开到客户端计算机的端口。在ASP.NET上与服务器端连接交换现有的Javascript SQL Server连接?

场景:我们有一个完全用javascript编写的旧客户端应用程序。 javascript包含一个明文连接字符串,包括一个sql server帐户的用户名和密码。我们也使用ASP.NET来托管其他应用程序。

我们希望将连接移动到服务器,而不必重写整个JavaScript应用程序。

有没有办法在服务器端连接中替换.js文件中的连接,而无需为.js文件中的每个数据函数编写AJAX(或类似的)调用?

下面是客户端如何用来连接SQL Server端口修改前:

var conn_str = "DRIVER=SQL SERVER;SERVER=MyServer;DATABASE=MyDb;UID=sqluser;PWD=mypassword;"; 

function openConn() { 
    //alert("openConn() "); 
    this.conn = getAdoDb("ADODB.Connection"); 
    conn.ConnectionTimeout = 240; 
    conn.CommandTimeout = 240; 
    conn.open(conn_str, "", ""); 
    //alert("Current Connection String: " + conn_str);} 

上面的代码与数千行代码的JavaScript文件。我们只想简单地用ASPX页面或AJAX中的某些东西来代替javascript的这个连接部分,或者可以被.js文件使用的东西。

+1

您有问题要问?我们特别不喜欢“挑战”。特别是那些没有告诉我们已经尝试过什么,没有代码样本的人。 – Oded 2012-04-04 10:43:48

+0

你到底如何直接通过JavaScript连接到SQL Server?据我所知,没有可用于直接使用javacript的SQL Server数据库库。 – Oded 2012-04-04 10:44:45

+0

我已经添加了示例代码并清理了帖子但是。 – VagabondSW 2012-04-04 10:56:29

回答

0

有没有办法在服务器端连接中替换.js文件中的连接,而无需为.js文件中的每个数据函数编写AJAX(或类似的)调用?

如果您打算使用服务器端技术,AJAX只是一种选择。您可以将重新调用的数据嵌入您的页面以供JavaScript使用(即输出JSON到页面)等。

您可以创建一个通用服务器端数据函数,它将接受SQL和参数,但需要验证传入的查询和参数以避免SQL注入和篡改。

在我看来,没有安全的方法来取代所有的数据功能。

+0

安全性不是必需的,除非在防火墙上打开SQL Server侦听端口不是一个选项。自从这篇文章被加入后,这与任何答案都是一样的。这是你的投票。 – VagabondSW 2012-04-04 11:57:25