0

我有一个文本资源文件,其中填充了散列用户名 + 密码及其相关权限。当他们启动应用程序时,他们会登录并根据他们的凭据访问应用程序的不同部分。

这一切都很好,但问题是那些拥有管理员帐户的人应该能够从程序中将新用户添加到列表中。我环顾四周,似乎您不打算编辑已编译的资源文件。

但是,我无法将此用户列表保存到计算机,因为有人可以删除、编辑或损坏它。此外,我无法查询在线服务,因为该应用程序经常在没有互联网连接的地方使用。

我喜欢使用资源文件,因为它们嵌入在可执行文件中,并且不会经常创建新用户。有没有办法在应用程序运行时编辑和重新编译资源文件?有谁知道我可以用来为该应用程序提供离线安全性的任何其他替代方案?

4

2 回答 2

2

可以更新可执行文件中的字符串资源Microsoft 有一个Stablupd示例来说明如何做到这一点。还有围绕 WinAPI 资源函数构建的 C# 库,例如ResourceLib. 但是,我不建议在运行时尝试更改可执行文件的资源。它可能不会导致任何问题,但它不是一个好的设计实践。我认为您最好的选择是将信息存储在加密文件中或在注册表中加密。您可以在程序关闭时将文件标记为只读,并在程序运行时将其锁定。是的,用户仍然可以删除它,但是如果您在程序中编辑资源,他们也可以删除或卸载您的程序,那么您最终也会丢失所有数据。至少将其存储在注册表中被删除的可能性较小。

于 2012-11-09T19:27:28.407 回答
1

您可以使用 SQL Server Compact 来存储和更新所需的信息。

但是在本地存储密码绝对是个坏主意: - 出于安全原因。任何人都可以轻松访问 - 以实现可扩展性。您不能使用超过一份应用程序的副本。否则两个不同的管理员将创建两个不同的帐户,并且无法同步两个数据库

于 2012-11-09T19:23:35.483 回答