由於安全性的問題,若從外部要連結aspx(ASP .net + IIS 7 + SQL Server 2008),可能要注意以下幾點問題:
1. 要在Windows防火牆「輸入規則」新增TCP連接埠,並選「特定本機連接埠」1433 (1433是預設port)
2. 「SQL Server組態管理員」上的「用戶端通訊協定」裡的「Shared Memory」、「TCP/IP」、「具名管理」皆啟用。並在「SQL Server網路組態」→「MSSQLSERVER的通訊協定」裡的「TCP/IP」按右鍵「內容」→「IP位址」的「IPAll」填上「TCP通訊埠」為1433
3. 使用SQL Server Management Studio(SSMS)連接SQL Server,在「安全性」→「登入」裡新增登入使用者,在左方「伺服器角色」勾選「public」,然後在左邊「使用者對應」勾選可以操作的資料庫,然後再勾選下方「db_datareader」、「db_datawriter」、「public」,接下來在點左方的「狀態」,把「連接到Database Engine的權限」選擇「授與」,「登入」的地方選擇「已啟用」。
4. 在SSMS裡點選「資料庫」→「Northwind」(此處資料庫的名稱)→按右鍵「屬性」→然後再點選左方「權限」→搜尋「上方第3點」所新增的使用者角色名稱→接著在下方勾選要授與的權限。
5. 在SSMS裡點根節點,也就是<hostname>\SQLEXPRESS,然後右鍵「屬性」→「安全性」→伺服器驗證選擇「SQL Server及Windows驗證模式」,此時還要再打開「SQL Server組態管理員」,點選「SQL Server服務」→重新啟動「SQL Server」與「SQL Server Browser」
6. ASP .net網站裡的Web.conf要更改一下連線字串
---------------------------------------------------------------
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=192.168.1.1\SQLEXPRESS;database=Northwind;Initial Catalog=Northwind;User ID=username;Password=password;Trusted_Connection=True;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
---------------------------------------------------------------
7. 允許http://192.168.1.1/dir 可以執行aspx去連結SQL Server的權限。首先,請在C:\inetpub\wwwroot\下建立一個dir目錄→開啟「伺服器管理員」→點開「角色」→點開「網頁伺服器(IIS)」→點選「Internet Information Services (IIS) 管理員」→再點開右方新跑出來的樹狀結構的「<hostname>」→點開「站台」→點開「Default Web Site」→在「dir」目錄上點選右鍵「轉換成應用程式」→再按「確定」,此時就可以執行http://192.168.1.1/dir/xxx.aspx
以上資料參考自:http://www.dotblogs.com.tw/shadow/archive/2011/12/18/62521.aspx
公告版位
目前分類:ASP .NET (2)
- Nov 13 Tue 2012 15:53
外部要連結本機aspx(ASP .net+IIS+SQLServer)要注意的地方!
- Nov 13 Tue 2012 15:29
初學者入門ASP .NET for using C# 取得SQL Server資料
P.S. 此範例以Vistual Web Developer 2010 Express內建debug用的IIS為例!! 並未將寫好的aspx複製到OS內自行架設的IIS.
使用工具:
1. Microsoft IIS 7
2. Microsoft SQL Server 2008 Express
3. Microsoft Visual Web Developer 2010 Express