2012-11-09 33 views
6

使用Microsoft Visual Studio 2010和Microsoft .NET Framework 4創建應用程序。應用程序連接到Microsoft SQL Server 2008數據庫。 該應用程序使用Microsoft ADO.NET SQL Server託管提供程序。當連接失敗時,應用程序會記錄連接信息,包括完整的連接字符串。信息以純文本形式存儲在.config文件中。.Net中的Persist Security信息4

您需要確保數據庫憑證是安全的。

應將哪個連接字符串添加到.config文件中?

A .Data Source = myServerAddress;初始目錄= myDataBase;集成安全= SSPI;堅持安全信息= false;

B .Data Source = myServerAddress;初始目錄= myDataBase;集成安全= SSPI;堅持安全信息=真;

C .Data Source = myServerAddress;初始目錄= myDataBase;用戶ID = myUsername;密碼= myPassword;堅持安全信息= false;

D .Data Source = myServerAddress;初始目錄= myDataBase;用戶ID = myUsername;密碼= myPassword;堅持安全信息=真;

根據指南,答案是'A'。但在我看來,答案是'C'。如果我們使用Integrated Security = SSPI,我們不需要提供用戶ID和密碼。所以,Persist Security Info = false不起作用。

據我所知,如果連接字符串具有User Credentials,Persist Security Info纔會生效。

您能否告訴我哪一個是正確的?謝謝。

回答

5

你說得對。只有在連接字符串中提供用戶名和密碼時,Persist Security Info = false纔有效。但問題是「你應該在.config文件中存儲什麼」,並且考慮到「信息以純文本形式存儲」,則不應將UID和PWD存儲在配置文件中。 如果您存儲C,則可以從.config文件中提取PWD和UID。但是,如果您存儲A,則不會提取憑據。

我不確定,爲什麼A有"Persist Security Info=false",但看起來這是一個很好的做法。 請參閱MSDN例子:

+0

*,但看起來是一個很好的做法*它也看起來非常多餘的,因爲默認值是'FALSE'。 –