如何加密实体框架和 Windows 窗体的连接字符串

本文关键字:Windows 窗体 字符串 连接 框架 实体 何加密 加密 | 更新日期: 2023-09-27 18:33:40

我正在编写一个利用云数据库的公共分发Windows窗体应用程序。 我需要加密已发布的 app.config 文件中的连接字符串。 我正在为这个项目使用实体框架和 .net 4.5。 根据我所读到的内容(可能是错误的(,EF 不会自动解密连接字符串。 我该如何做到这一点?

如何加密实体框架和 Windows 窗体的连接字符串

您应该使用 Windows 身份验证。 如果您为用户提供加密的连接字符串并期望他们将其传递回未加密的加密,那么您必须为他们提供基本上解密公钥的方法,这是一种安全不。您可以加密文件中的字符串,并让应用程序将其传递给保存私钥、解密、建立与数据库的连接以及对数据库进行查询的 WCF 或 REST 服务。但这仍然使加密值与密码一样好。这就是为什么您需要使用 Windows 身份验证,以便用户可以提供其凭据并对其进行授权。这样,您可以控制谁在访问数据库,并且用户是唯一有权访问其密码的人(理论上无论如何(。

这也是为什么 ASP.Net 具有此功能,并且 WinForm 应用程序不 ASP.Net 在受控服务器环境中运行的应用程序,在受控服务器环境中,它们可以访问私钥而无需与世界共享。

要扩展我的评论以使其成为答案,您可以使用 aspnet_regiis .将 app.config 重命名为 web.config,然后按照中所述的步骤操作

加密将重新分发的 App.config 文件中的部分和/或设置

完成后,将文件重命名回来。