打开/关闭应用程序的功能

时间:2013-06-17 08:47:51

标签: c# .net configuration app-config config

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

  • 配置文件
  • 注册表
  • 自定义xml文件

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

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

非常感谢。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

我看到以下选项:

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

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

答案 2 :(得分:2)

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

有关签署XML here的更多信息。