![]() |
1
2
最简单的方法是创建一个包含所有功能的程序,并根据产品密钥启用/禁用它们。 第二个选择是为程序创建一个最小的sceleton,并使用一个插件架构来添加更多的功能。这意味着您只能部署所部署版本所需的部分。 使用.NET,您可以查看System.Addin命名空间或反射内容… |
![]() |
2
1
我会寻求更简单的解决方案:
这样,您就不需要配置文件来启用/禁用功能,如果您将所有内容都放在一个应用程序中,就不会有“功能访问”代码。而且,你的用户不可能破解你的应用程序或密钥,并获得他没有付费的功能。 缺点是你不能仅仅通过发送新的密钥就把用户从“标准”升级到“专业”,用户必须下载并安装新的应用程序。 |
![]() |
3
0
您可能需要查看.NET成员资格提供程序中基于角色的安全性(假设它是一个Web应用程序)。您可以添加角色“第1层”和“第2层”,也可以为层允许用户使用的每个功能添加角色。然后在实现分层功能的页面上,如果user.isinrole(“featurename”)显示它。 |
![]() |
4
0
这取决于您要阻止用户使用哪些功能。 如果您的所有功能都是独立的,那么bramha的解决方案是一个很好的解决方案,但是如果您的功能不是独立的,那么这是一个完全不同的故事,您需要开发一个内部“框架”,允许对每个功能进行抽象。 |
![]() |
5
0
我可能会使用编译器指令来分离这些特性。这样,您就有了一个代码库,但可以“编译”应用程序中的几个不同的特性。如果你把所有的东西都编译进去,然后用不同的串行键把这些功能分开,盗版者就很容易了。毕竟,如果不存在的话,特征不能被道奇连续剧解锁。 |
![]() |
6
0
从软件盗版的角度来看,您可能希望使用条件编译(使用 #define and #if )或者单独的程序集-基本上:如果一个特性在标准版或试用版中不可用,不要禁用它,而是完全删除它。 如果尝试使用某种全局枚举“licensetype{standard,enterprise}”,请记住 Crack.net 可以轻易改变它的存在。 另一方面:只有一个包含所有特性的可执行文件,并且在每个键的基础上启用/禁用它们,这使得部署和版本管理更加容易。 |
![]() |
Rodney · 如何在Ionic2构建脚本中运行copy命令 7 年前 |