我正在制作一个使用一些数据连接到数据库的组件,这个数据包括用户ID和密码,它将这些值存储在私有变量中,但任何程序员都可以在初始化后看到调试器中的值,所以我想知道SqlConnection如何隐藏该值,当我看到属性ConnectionString的值时,我看到除了密码之外的所有信息,它将它存储在某个地方,但它没有让它可见,即使在调试器中我也看不到任何存储的变量密码,我知道我可以使用SecureString保护密码,但我想知道如何实现SqlConnection对象.
谢谢.
胡安扎穆迪奥
从手册中:
ConnectionString 类似于 OLE DB 连接字符串,但并不完全相同。与 OLE DB 或 ADO 不同,返回的连接字符串与用户设置的 ConnectionString 相同,但如果“持久安全信息”值设置为 false(默认值),则减去安全信息。除非将 Persist Security Info 设置为 true,否则 SQL Server 的 .NET Framework 数据提供程序不会在连接字符串中保留或返回密码。
我不确定这是如何实现的。我未经验证的猜测是,它会用安全参数填充一个结构,然后发送到服务器,而不会实际存储它们,除非您将 Persist Security Info 设置为 true。