6

您使用 Microsoft Visual Studio 2010 和 Microsoft .NET Framework 4 创建应用程序。应用程序连接到 Microsoft SQL Server 2008 数据库。应用程序使用 Microsoft ADO.NET SQL Server 托管提供程序。连接失败时,应用程序会记录连接信息,包括完整的连接字符串。信息以纯文本形式存储在 .config 文件中。

您需要确保数据库凭据是安全的。

您应该将哪个连接字符串添加到 .config 文件中?

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

B.数据源=我的服务器地址;初始目录=myDataBase; 集成安全=SSPI;持久安全信息=true;

C .Data Source=myServerAddress; 初始目录=myDataBase; 用户 ID = 我的用户名;密码 = 我的密码;持久安全信息=false;

D.数据源=我的服务器地址;初始目录=myDataBase; 用户 ID = 我的用户名;密码 = 我的密码;持久安全信息=true;

根据指南,答案是“A”。但在我看来,答案是“C”。如果我们使用 Integrated Security = SSPI,我们不需要提供用户 ID 和密码。因此,Persist Security Info=false 无效。

据我所知,仅当连接字符串具有用户凭据时,持久安全信息才会生效。

你能告诉我哪一个是正确的吗?谢谢。

4

1 回答 1

5

你说的对。Persist Security Info=false 只有在连接字符串中提供了用户名和密码时才有效。但问题是“你应该在 .config 文件中存储什么”并考虑到“信息以纯文本形式存储”,你不应该将 UID 和 PWD 存储在配置文件中。如果存储 C,则可以从 .config 文件中提取 PWD 和 UID。但是,如果您存储 A,则没有要提取的凭据。

我不确定,为什么 A 有"Persist Security Info=false",但看起来这是一个很好的做法。请参阅 MSDN 示例:

于 2012-11-26T00:04:50.517 回答