【问题标题】:Persist Security Info Property=true and Persist Security Info Property=false持久安全信息属性=true 和持久安全信息属性=false
【发布时间】:2015-08-05 19:55:06
【问题描述】:

对于属性:

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;";

【问题讨论】:

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


【解决方案1】:

即使您设置了Persist Security Info=truePersist Security Info=false 它不会在前面显示出差异。差异发生在后台。

Persist Security Info=False时,安全敏感 密码等信息不会作为 如果连接打开或曾经处于打开状态,则连接 状态。

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

这就是区别。

MSDN Explanation

设置Persist Security Info true 或 false 仅当您在连接字符串中提及用户名和密码时才会生效。如果您在连接字符串中提及用户名和密码并将Persist Security Info 设置为false,则无法提取凭据,但如果您在连接字符串中提供凭据时将Persist Security Info 设置为true,Windows 将记住凭据,并且它可以通过编程方式提取。

【讨论】:

  • 所以如果我想将其设置为 true,我将如何编写连接代码??
  • @Nourah 将其设置为 true 或 false 仅当您在连接字符串中提及用户名和密码时才会生效。如果您在连接字符串中提及用户名和密码并将其设置为 false,则无法提取凭据..但是如果您在连接字符串窗口中提供凭据时设置为true,则会记住凭据,并且可以在pgm中提取...请参阅编辑后的答案
  • "那么无法提取凭据.." 通过什么,源代码?什么是优点和缺点,以及何时需要将其设置为 true 的简单场景?
  • pgm 是什么意思?
  • @eaglei22,.net 实体框架的 DbContext 的用户可能想要提取连接字符串,以便创建附加连接以用于 SqlBulkCopy 等较低级别的操作。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2012-04-28
    • 1970-01-01
    • 2021-11-19
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多