2012-04-04 58 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