我团队目前正在开发的应用程序有一个DLL,用于执行所有数据库访问。由于数据库位于防火墙后面而域服务器不在防火墙内,因此应用程序无法使用可信连接。因此,连接字符串需要具有数据库用户名和密码。目前该DLL中已经硬编码了数据库连接字符串,但是在发布时我们不想这样做,因为程序集可以被反汇编,用户名和密码会被公开。
其中一个要求是每隔几个月需要更改一次密码,因此我们需要将其发布给我们的内部用户群体。
是否有一种加密存储密码的方法,可以轻松分发给全部用户,而不必将其存储在程序集中?
更新:感谢所有回答的人。我会尽力回答一些问题......数据DLL既用于ASP.NET WebForms也用于VB.NET WinForms。我知道应用程序可以拥有自己的配置文件,但是我没有看到关于DLL配置文件的任何内容。不幸的是,我不能在工作中访问Jon Galloway的帖子,所以我无法判断那是否有效。从开发角度来看,我们不想在公司使用Web服务,但可能会在明年向第三方提供。我认为模拟身份验证不起作用,因为我们无法通过防火墙对用户进行身份验证。由于用户(或以前的用户)可能是攻击者,我们将其保密。