您使用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 .data source = myServerAddress;初始目录= myDatabase;集成安全= SSPI;坚持安全信息= true;
c .data source = myServerAddress;初始目录= myDatabase;用户ID = myusername;密码= myPassword;坚持安全信息= false;
d .data source = myServerAddress;初始目录= myDatabase;用户ID = myusername;密码= myPassword;坚持安全信息= true;
根据指南,答案是" a"。但我认为,答案是" C"。如果我们使用的集成安全= SSPI,则不需要提供用户ID和密码。因此,持久安全信息= false无效。
据我所知,仅当连接字符串具有用户凭据时,持久性安全信息才会生效。您能告诉我哪一个是正确的?谢谢。
你是对的。持久安全信息= false仅在连接字符串中提供的用户名和密码时才有效果。但是问题是"您应该在.config文件中存储什么",并且考虑到"信息被存储为纯文本",您不应将UID和PWD存储在配置文件中。如果存储C,则可以从.config文件中提取PWD和UID。但是,如果您存储A,则没有凭据提取。
我不确定,为什么A具有"Persist Security Info=false"
,但看起来这是一个很好的做法。请参阅MSDN示例:
- http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v = vs.71).aspx
- http://msdn.microsoft.com/en-us/library/ff6475552.aspx