假设您要上传“测试版”版本,但您有信任问题。您将如何添加到期日期?
我考虑过硬编码到期日期 - 但随后任何人都可以反编译/重新编译 .NET dll。
然后我想也许我应该让应用程序迭代它自己的文件并删除它们。但是,在删除一个重要的 dll 后,IIS worker 将停止,我们将无法删除其他的。更不用说我们需要对包括 BIN 在内的所有文件夹设置写权限这一事实。
嗯......有什么想法吗?
在某处添加硬编码日期检查,并混淆您的应用程序。
更新:
我不会说在混淆程序集中找到日期检查会很容易,特别是如果您使用一些商业工具。当然,这不可能是 100% 安全的,我没有任何调试/破解混淆程序集的经验,但会花一些时间在谷歌上搜索商业混淆器以及它们能做什么。
除此之外,您可以使用您的应用程序运行连接到互联网的事实,您可以检查一些外部资源,当然这很容易被嗅探,但是您可以编写应用程序的一些重要部分,即一些脚本,将该脚本加密其他一些服务器。然后您的应用程序应该下载、解密并执行该脚本,因此如果您将其从远程服务器中删除,将很难重现该功能。第三方可能会下载该脚本并在不可用时提供它,请注意这一点。也许您可以使用Rosyln并使用您的 c# 代码而不是该脚本。
我没有做任何类似的事情,也许还有更多问题,这只是我的想法,所以如果你想这样做,请做你的研究:)
您可能希望将日期用作代码深处的一些有意义的输入变量,例如使用“超过阈值的滴答声”来计算一些计划的可伸缩性降低,所有这些都设置在不同的时间阈值,引入延迟或其他东西。如果您将它们放在多个位置并用注释 .cs 进行标记,那么您可以在需要时轻松删除它们,但从 dll 中根除成本太高。