我的.net应用程序中有几个功能,我希望能够打开/关闭。据我所知,有几种选择:
由于安全原因,我想避免与Windows注册表相关的任何内容。与此同时,我不喜欢配置文件/自定义xml文件,它可以被客户端访问(例如客户端可以打开他/她没有支付的功能)。
我非常感谢对我的问题提出建议。有没有办法跟踪配置文件中的更改(我仍然希望能够更改其他设置),或者我可以构建一些在我的应用程序发布之前运行的进程,并会询问要打开哪些功能/ off并在某处保存此设置(不适用于客户端)。
非常感谢。
答案 0 :(得分:2)
有很多方法可以处理这种情况,但最简单的方法之一可能是加密配置文件。
您也可以使用对称加密系统,但非对称方法的优点是最终用户无法生成伪文件,即使他通过逆向工程应用程序检索密钥(他仍然可以直接篡改应用程序的二进制文件虽然)。
答案 1 :(得分:2)
我看到以下选项:
每次启动应用程序时,都要连接到远程服务器或远程数据库以检查用户权限。主要缺点:用户在使用您的应用程序时必须具有互联网连接。
将其存储在本地(无论哪种方式),但采用加密形式。最简单的选择是使用证书。主要缺点:您必须提供“基础设施”来管理许可证密钥。
答案 2 :(得分:2)
如果您只想拥有一个可以防止数据被篡改的地方,您可以在app.config上签名。这样它就无法改变,但它仍然是可读的xml。它没有加密。
有关签署XML here的更多信息。