2012-11-09 54 views
0

我有一个文本资源文件,里面充满了哈希用户名+密码及其相关权限。当他们启动应用程序时,他们登录并根据他们的凭据访问应用程序的不同部分。如何更新已编译的文本资源文件?

这一切运作良好,但问题是,与管理员帐户的人应该能够添加新的用户从程序中的列表。我环顾四周,似乎你不打算编辑已编译的资源文件。

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

我喜欢使用资源文件,因为它们嵌入在可执行文件中,并且不会经常创建新用户。有什么方法可以在应用程序运行时编辑和重新编译资源文件?有没有人知道我可以用来为这个应用程序提供离线安全性的其他选择吗?

+0

这听起来很像默默无闻,而不是安全。 –

回答

2

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

1

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

但是,在本地存储密码绝对不是个好主意: - 出于安全原因。任何人都可以轻松访问 - 可扩展性。您不能使用您的应用程序的更多副本。其他方式两个不同的管理员将创建两个不同的帐户,并且没有办法同步两个数据库

相关问题