.NET 4中的坚持安全信息



您使用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

最新更新