2012-06-27 36 views
1

我們可以將數據庫連接字符串放在.resx文件中的C#類庫項目類型中嗎? 如果是這樣, 有什麼優點和缺點?在.resx文件中放置數據庫連接字符串

+3

是什麼讓你不把它放到App.config/Web.config文件中? –

+0

敏感數據當然應該在將它們放入配置文件之前進行加密...... –

+0

我試圖把它放在app.config文件中,但這裏很好地解釋了這個問題:[link] http://stackoverflow.com/q/11192842/1444246 ,我無法從UI層中的web.config將其從Repository(DAL)中檢索到。 – viento

回答

3

你可以把你想要的任何東西放到一個resx文件中並讀回來,應該沒有任何問題。就優點而言,與將其放入應用程序配置文件相比,它沒有任何優勢。相反,訪問字符串變得更加繁瑣,並且不能在運行時改變它們。

一般來說,我發現將連接字符串放入resx並用編譯時常量將其編譯到代碼中幾乎沒什麼區別。

毫無疑問,密碼中的字符串不應該以純文本的形式進入config或resx文件。

+0

「不用說,密碼中的字符串不應該進入配置或resx文件」 - 我不同意關於配置文件。在一些(並非全部)情況下,它是合適的 - 並且使用受保護的配置對其進行加密是一個好主意:http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx – Joe

+0

@Joe感謝您的評論。我編輯了答案,以澄清我的意思。有意思的是,受保護的配置是可以的 - 這就是它首先被髮明的原因。 – dasblinkenlight

1

我們當然可以。與此相關的問題是資源文件被編譯到程序集中,因此您無法重新編譯該值,而無需重新編譯該項目。 所以我會推薦使用配置文件而不是資源文件來配置參數,如連接字符串。

+0

請在我的問題上閱讀我對我的評論 – viento

+0

我們爲此解決了問題。使用IoC將連接字符串注入到NHibernate配置方法中。 – amdmax

0

你可以把任何字符串放在一個resx文件中,所以可以把db連接信息放在那裏。把它放在app.config file中更習慣。

1

我們可以放置 - >是的。這僅僅是一個字符串,

優勢 - > 1.本地化(並非所有的數據庫都支持全球化的所有文化,但在不同的語言還是我看到的用戶名/密碼) 2.密碼進行加密/混淆

缺點 1.修改需要重新編譯。 (這是它們可以在配置文件中設置的基本原因)