Dot-Net

在 .NET DLL 中儲存連接字元串的最佳方式是什麼?

  • December 15, 2015

我的團隊目前正在開發的應用程序有一個用於執行所有數據庫訪問的 DLL。應用程序無法使用受信任的連接,因為數據庫位於防火牆後面,而域伺服器不在。所以看起來連接字元串需要有一個數據庫使用者名和密碼。DLL 目前具有硬編碼的數據庫連接字元串,但我不想在我們啟動時這樣做,因為可以反彙程式序集,並且使用者名和密碼就在那裡。

其中一項要求是密碼需要每隔幾個月更改一次,因此我們需要將其推廣到我們的內部使用者群。

有沒有一種方法可以儲存加密的密碼,以便我們可以輕鬆地將其分發給整個使用者群,而無需將其儲存在程序集中?

更新:感謝所有回答的人。我將嘗試回答一些問題… ASP.NET WebForms 和 VB.NET WinForms 都使用數據 DLL。我知道應用程序可以有自己的配置文件,但我沒有看到任何關於 DLL 的配置文件的內容。不幸的是,我在工作中無法到達 Jon Galloway 的職位,所以我無法判斷這是否可行。從開發的角度來看,我們不想在內部使用 Web 服務,但可能會在明年某個時候將它們提供給第三方。我認為模擬不會起作用,因為我們無法通過防火牆對使用者進行身份驗證。由於使用者(或以前的使用者)可能成為攻擊者,因此我們對所有人保密!

我不確定,但我相信您可以將其放在配置文件中並加密配置文件。

更新:請參閱 Jon Galloway 的文章

假設壞人將從您的配置文件中獲取憑據。這意味著他們將能夠登錄到您的數據庫並執行該使用者能夠執行的任何操作。所以只要確保使用者不能做任何壞事,比如直接訪問表。使該使用者只能執行某些儲存過程,您將處於更好的狀態。這是 sprocs 大放異彩的地方。

引用自:https://stackoverflow.com/questions/6113