2008-12-11 55 views
5

我正在做它用一些數據來連接到數據庫組件的密碼,這個數據包括用戶ID和密碼,將其存儲這些值在私有變量,但任何程序員都可以看到價值在初始化後的調試器中,所以我想知道SqlConnection如何隱藏該值,當我看到屬性ConnectionString的值時,我看到除密碼之外的所有信息,將其存儲在某處但未將其顯示出來,即使在調試器,我不能看到任何存儲密碼的變量,我知道我可以使用SecureString來保護密碼,但我想知道SqlConnection對象的實現是如何。的SqlConnection如何隱藏連接字符串

謝謝。

胡安·薩穆迪奧

回答

2

manual

ConnectionString中是類似於 OLE DB連接字符串,但並不 相同。與OLE DB或ADO不同,返回的 連接字符串與用戶設置的 ConnectionString相同,爲 ,如果Persist Security 信息值設置爲false(默認),則減去安全性 信息。 用於 的.NET Framework數據提供程序除非將持久安全信息 設置爲true,否則SQL Server不會持續或返回 連接字符串 中的密碼。

我不知道這是如何實現的。我的未經驗證的猜測是它使用它發送給服務器的安全參數填充結構,除非將Persist Security Info設置爲true,否則不會實際存儲它們。