sqlConnection如何隐藏连接字符串的密码

时间:2008-12-11 06:52:10

标签: .net ado.net

我正在制作一个使用一些数据连接到数据库的组件,这个数据包括用户ID和密码,它将这些值存储在私有变量中,但是任何程序员都可以在初始化后看到调试器中的值,所以我我想知道SqlConnection如何隐藏该值,当我看到属性ConnectionString的值时,我看到除了密码之外的所有信息,它将它存储在某个地方,但它没有让它可见,即使在调试器中我也看不到任何变量这是存储密码,我知道我可以使用SecureString保护密码,但我想知道如何实现SqlConnection对象。

感谢。

Juan Zamudio

1 个答案:

答案 0 :(得分:3)

来自manual

  

ConnectionString类似于   OLE DB连接字符串,但不是   相同。与OLE DB或ADO不同,   返回的连接字符串是   与用户设置相同   ConnectionString,减去安全性   如果坚持安全的信息   信息值设置为false(默认值)。   .NET Framework数据提供程序   SQL Server不会保留或返回   连接字符串中的密码   除非您设置持久安全信息   为真。

我不确定这是如何实现的。我的未验证的猜测是它用一个安全参数填充一个结构,然后发送给服务器,除非你将Persist Security Info设置为true,否则永远不会存储它们。