2010-08-26 51 views
3

我找不到適合此目的的問題,所以我問了這個問題。在數據庫中存儲連接字符串

我們已經部署了一個ASP.NET網站,它有兩個連接字符串,其中一個可以由用戶在運行時配置。問題是,由於我使用.NET Framework來完成此操作,因此在web.config更改時會創建一個臨時文件,這會迫使我的客戶授予對整個網站文件夾的完全權限,而不僅僅是Web。配置文件。他對此並不滿意,而經理們則質疑將其他連接字符串存儲在同一個配置文件中。

所以我有選擇創建一個單獨的配置文件,在一個單獨的文件夾,以便他們應該只授予該文件夾的完整權限,或將其存儲在數據庫上。第一個選項與現在大致相同,所以問題是:

如何在數據庫中存儲ConnectionString?

請注意,我不是說應用程序ConnectionString,而是另一種選擇,因爲此應用程序將像三個應用程序一樣集成。

所以,大家,給我的優點和缺點,存儲在數據庫上的好處和不利之處。

+0

如果您決定將連接字符串存儲在數據庫中,請考慮對其進行加密。特別是如果它包含用戶名和密碼(即您不使用Windows身份驗證)。 – 2010-08-26 18:10:31

+0

當然,如果我將它存儲在數據庫中,我會引用它。 – Smur 2010-08-27 12:46:00

回答

5

我不會在數據庫中存儲連接字符串。

我會使用Settings File來代替(設置文件可以在運行時修改而不會導致像web.config這樣的應用程序的重新編譯)。

你也可以給不同的設置不同的範圍(用戶,應用程序等),這樣每個用戶可以存儲他們自己的配置,如果你想不踩別人的腳趾。

+0

設置文件存儲在哪裏?網站運行的帳戶是否需要對該文件夾的寫入權限(我會這麼認爲!)? – badbod99 2010-08-26 15:07:35

+0

這樣我可以將單獨的設置文件放在另一個文件夾中,並授予它的完整權限。謝謝 – Smur 2010-09-06 20:33:31

6

如果用戶正在使用具有自己的數據庫的應用程序連接到他選擇的第二個數據庫,並且需要能夠在運行時更改該數據庫,那麼將其存儲在數據庫中。這是某種自助服務託管應用程序?

設置文件適用於管理員要更改的內容。當應用程序用戶(或應用程序開發人員)而不是系統管理員需要在設置文件中進行更改時,最好將其放入數據庫中。

2

儲存於數據庫

如果它是你的用戶數據的一部分,並沒有涉及到這個應用程序的設置,我將其存儲在數據庫中的詩句任何別的地方。這與任何其他用戶數據沒有區別。

優勢

  1. 不存儲公衆可以得到它 - 雖然ASP.net ISAPI篩選器不允許訪問它正常,但你永遠不知道什麼漏洞會彈出接下來
  2. 容易把它與用戶的其他數據 - 因爲它是鏈接到你的網站的用戶來說,這是非常有用的
  3. 沒有安全問題 - 無需設置任何特殊權限的任何地方
-1

你可以在你的網頁上使用這樣的東西。配置

<add name="ConnectionString" connectionString="Data Source={0};Initial Catalog={1};User ID={2};Password={3}" providerName="System.Data.SqlClient" />

然後使用的String.format()來設置每個參數的diferent值。