2009-07-29 57 views
0

好吧,我知道這已經被問過一千次,但沒有確鑿的解決方案已經得到的...所以這裏還有一個非常愚蠢的問題!解密(只)連接字符串中的WinForms部分的app.config

我有一個WinForms 3.5應用程序,並使用LINQ to SQL,因此連接字符串總是存儲在「app.config中」默認情況下(和VS2008不會接受這個存儲任何其他方式 - 伊夫甚至試圖覆蓋這在IDE生成的代碼中)。話雖這麼說,任何人有位計算機知識的需要剛好瀏覽到該應用程序的安裝目錄,查找[APPNAME] .exe.config文件,並打開它揭示應該安全訪問數據庫的用戶名/密碼。即使你選擇加密/解密這個部分,它也只是在應用程序運行時纔會完成 - 所以我假設當應用程序關閉時,connString部分恢復爲純文本....可以再次讀取。 (?!?!......你怎麼贏)記住

飼養,即時通訊使用LINQ和產生LinqDataContext,我想知道的是:

  1. 能否CONNSTRING不存儲在除app.config之外的其他地方? (也許就像安裝後可以修改的用戶設置文件一樣)
  2. 如果以上可行,是否可以將預加密的 connstring存儲到配置文件中(肯定不會被讀取)和在我的應用程序中,只有打開連接時才選擇解密connstring?

如果沒有這種可能,我可能要恢復使用傳統ADO.NET(看到我已經有數百個存儲特效的所有CRUD操作) - 至少這樣我可以有超過如何控制以及存儲連接線的位置。

順便說一句 - 對不起,如果這是一個少年/混亂的問題要問,如果你覺得我錯與任何即時通訊解釋,請讓我知道。

非常感謝!

+0

**更新:**我發現下面的鏈接(http://goneale.com/2009/ 03/26/untie-linq-to-sql-connection-string-from-application-settings /),這是不言自明的,並照顧我的第一個問題 - 哇!請問有人可以幫我解答我的第二個問題嗎? – Shalan 2009-07-29 21:26:53

回答

0

你可以在app.config中存儲一個預先加密的conn-string,但是我猜這是無用的,因爲你的應用程序遲早會解密conn-string(並且純文本對任何人都是可用的有興趣)

所以,你應該獲得SSL cerificate太...(不是自簽名的一個)

+0

是真的,但它會對Winforms App.config文件中的預加密字符串執行相同的操作嗎? Iv完美地解決了正在進行的解密工作,並且堅持在內存中。 – Shalan 2009-11-19 07:58:20

相關問題