您将如何授权您的Mono代码?

问题描述:

对于winForms环境中的C#,我已经通过写入加密的regestry的具体信息来授权我的类。您将如何授权您的Mono代码?

根据单声道,有一些设施不适合你。注册表就是其中之一。你会用什么方法在Mono下授权你的代码?

我不希望恶意用户能够删除应用程序目录,重置试用计时器或复制.LIC文件并突然访问该程序。

任何想法,将不胜感激。

+0

伟大的问题。我不知道,但我很想看看你得到了什么答案。 – MusiGenesis 2009-01-30 19:51:36

+0

为什么mono下的加密文件比加密的注册表键安全性更低? – andynormancx 2009-01-30 19:52:17

使用标准的.Net注册表类可以使用注册表。你可以在那里写你的加密值,并在稍后检索它们。

但是,Linux上的注册表只是用户主目录中的一个文件,所以您无法真正做的是从Mono之外修改它,如从.msi(例如,.msi的不存在于Linux上)。

任何类型的加密证书许可应该至少在Mono上与在Windows上一样安全。部署没有证书的应用程序。如果它没有检测到证书,则它处于“简化功能”模式。如果是这样,那么它处于“全模式”。只在购买时出具证书。对于全功能时间受限的试用,遇到了更大的问题,但在一天结束时,没有任何东西阻止用户使用注册表,甚至无法在虚拟机中运行应用程序或使用系统恢复*。

您总是可以根据CPUID加密文件并将其存储在目录中。我不知道如何在硬盘上存储文件不同于在注册表中存储的东西。用户仍然可以根据需要找到注册表项导出/导入。只有当您使用CPUID或主板信息来加密数据时,它才会被限制在该机器上。