使用Microsoft 2010和Microsoft框架4创建连接到Microsoft 2008数据库的.NET应用程序。应用程序使用Microsoft ADO.NET Server托管provider.When连接失败,应用程序记录连接信息,包括完整连接string.The信息以纯文本形式存储在.config文件中。
需要确保数据库凭据是安全的。
应该将哪个连接字符串添加到.config文件中?
A.Data Source=myServerAddress;初始Catalog=myDataBase;集成Security=SSPI;持久化安全Info=false;
B.Data Source=myServerAddress;初始Catalog=myDataBase;集成Security=SSPI;持久化安全Info=true;
C.Data Source=myServerAddress;初始Catalog=myDataBase;用户Id = myUsername;密码= myPassword;持久化安全Info=false;
D.Data Source=myServerAddress;初始Catalog=myDataBase;用户Id = myUsername;密码= myPassword;持久化安全Info=true;
根据指南,答案是'A‘。但在我看来,答案是C。如果我们使用的是Integrated = SSPI,则不需要提供UserID和密码。因此,持久化安全Info=false没有任何影响。
据我所知,只有当连接字符串具有用户凭据时,持久化安全信息才会生效。
你能告诉我哪一个是正确的吗?谢谢。
发布于 2012-11-26 00:04:50
你是正确的。只有在连接字符串中提供用户名和密码时,持久化安全Info=false才有效。但是问题是“您应该在.config文件中存储什么”,并且考虑到“信息以纯文本形式存储”,您不应该将UID和PWD存储在配置文件中。如果存储C,则可以从.config文件中提取PWD和UID。但是如果你存储A,就没有凭据可以提取。
我不知道为什么A会有"Persist Security Info=false",但是看起来这是一个很好的练习。参见MSDN示例:
https://stackoverflow.com/questions/13306638
复制相似问题