持久安全信息Property = true且Persist Security Info Property = false

时间:2015-05-24 02:54:38

标签: c# database ms-access database-connection connection-string

对于属性:

Persist Security Info=true

Persist Security Info=false

你能告诉我他们之间的区别是什么,如果我不把它放在我的连接中会发生什么?

connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
                            Data Source=C:/Users/Nourah/Downloads 
                            /Phase3/Salary.accdb; 
                            Persist Security Info=False;";

2 个答案:

答案 0 :(得分:36)

即使您设置Persist Security Info= truePersist Security Info=false 它不会在前面显示出差异......差异发生在背景

Persist Security Info set to false安全敏感时 信息(如密码)不会作为一部分返回 如果连接已打开或已打开,则连接 状态。

如果设置Persist Security Info to True,Windows将记住连接字​​符串中指定的密码。

差别就是这样。

MSDN Explanation

只有在连接字符串中提及用户名和密码时,

设置Persist Security Info true或false才会生效。如果您在connectionstring中提及用户名和密码并将Persist Security Info设置为false,则无法提取凭据。但是如果你将Persist Security Info设置为true而在连接字符串窗口中提供凭据则会记住凭据并且可以在程序中提取

答案 1 :(得分:1)

我从SQL Server MVP Dan Guzman找到了这个答案here

  

我建议您指定FALSE或完全省略关键字,因为它是   默认值,即使在开发期间也是如此。您唯一需要的时间   如果应用程序使用SQL身份验证,则指定TRUE,并且   随后从连接对象中检索密码,   根据我的经验,很少要做或不需要。性能不是   关注。