1

我的 .net 应用程序中有几个我希望能够打开/关闭的功能。据我了解,有几种选择:

  • 配置文件
  • 登记处
  • 自定义xml文件

由于安全原因,我想避免与 Windows 注册表相关的任何事情。同时,我不喜欢配置文件/自定义 xml 文件的是它可以被客户端访问(例如,客户端可以打开他/她没有支付的功能)。

我真的很感激关于我的问题的建议。有没有办法跟踪配置文件中所做的更改(我仍然希望能够更改其他设置),或者我可以例如构建一些将在我的应用程序发布之前运行的进程并询问要打开哪些功能/off 并将此设置保存在某处(不适用于客户端)。

非常感谢。

4

3 回答 3

2

有很多方法可以处理这种情况,但最简单的方法之一可能是加密配置文件。

  • 使用非对称加密系统(如 RSA)
  • 在构建过程中,使用私钥加密文件,并与应用程序一起分发
  • 在应用程序的代码中,使用公钥解密文件,并相应地激活功能

您也可以使用对称加密系统,但非对称方法的优点是最终用户即使通过对应用程序进行逆向工程来检索密钥,也无法生成假文件(尽管他仍然可以直接篡改应用程序的二进制文件) )。

于 2013-06-17T08:54:37.970 回答
2

我看到以下选项:

  1. 每次启动应用程序时,连接到远程服务器或远程数据库以检查用户权限。主要缺点:用户在使用您的应用程序时必须有互联网连接。

  2. 将其存储在本地(无论哪种方式),但以加密形式存储。最简单的选择是使用证书。主要弱点:您必须提供“基础设施”来管理许可证密钥。

于 2013-06-17T08:55:42.200 回答
2

如果您只想拥有一个数据不会被篡改的地方,您可以签署 app.config。这样它就无法更改,但它仍然是可读的 xml。它没有加密。

有关在此处签署 XML 的更多信息。

于 2013-06-17T09:00:42.933 回答