Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET4中持久保存安全信息_C#_.net 4.0_Connection String - Fatal编程技术网

C# 在.NET4中持久保存安全信息

C# 在.NET4中持久保存安全信息,c#,.net-4.0,connection-string,C#,.net 4.0,Connection String,您可以使用Microsoft Visual Studio 2010和Microsoft.NET Framework 4创建应用程序。该应用程序连接到Microsoft SQL Server 2008数据库。 应用程序使用Microsoft ADO.NET SQL Server托管提供程序。连接失败时,应用程序将记录连接信息,包括完整的连接字符串。该信息以纯文本形式存储在.config文件中 您需要确保数据库凭据是安全的 应将哪个连接字符串添加到.config文件中 A。数据源=myserver地

您可以使用Microsoft Visual Studio 2010和Microsoft.NET Framework 4创建应用程序。该应用程序连接到Microsoft SQL Server 2008数据库。 应用程序使用Microsoft ADO.NET SQL Server托管提供程序。连接失败时,应用程序将记录连接信息,包括完整的连接字符串。该信息以纯文本形式存储在.config文件中

您需要确保数据库凭据是安全的

应将哪个连接字符串添加到.config文件中

A。数据源=myserver地址;初始目录=myDataBase;综合安全=SSPI;持久安全信息=false

B。数据源=myserver地址;初始目录=myDataBase;综合安全=SSPI;持久安全信息=true

C。数据源=myserver地址;初始目录=myDataBase;用户Id=我的用户名;密码=我的密码;持久安全信息=false

D。数据源=myserver地址;初始目录=myDataBase;用户Id=我的用户名;密码=我的密码;持久安全信息=true

根据指南,答案是A。但在我看来,答案是“C”。如果我们使用integratedsecurity=SSPI,则不需要提供用户ID和密码。因此,Persist Security Info=false无效

据我所知,持久化安全信息仅在连接字符串具有用户凭据时生效


你能告诉我哪一个是正确的吗?谢谢。

你说得对。Persist Security Info=false仅在连接字符串中提供用户名和密码时有效。但问题是“您应该在.config文件中存储什么”,并且考虑到“信息存储为纯文本”,您不应该在配置文件中存储UID和PWD。 如果存储C,则可以从.config文件中提取PWD和UID。但是,如果您存储了,则没有可提取的凭据

我不确定,为什么A有
“Persist Security Info=false”
,但看起来这是一个很好的实践。 参见MSDN示例:

但看起来这是一个很好的做法,因为默认值是
false
,所以它看起来也非常冗余。