我有桌面C#应用程序,添加这些功能的最佳方法是什么:
我希望这些选项没有登录或服务器可访问性。我想要像库或dll这样的东西。
答案 0 :(得分:0)
可以轻松完成,同时也很难
为什么可以轻松完成?您只需将第一次启动\安装的时间写入文本文件/注册表/其他位置,并在每次启动时进行检查。
但是,我不会依赖这种方法,因为任何有经验的用户都可以通过删除/修改文件/注册表项来“重置”此限制。
如果您的申请是商业性的,则意味着(通常是巨额的)资金损失
回想一下不同的商业应用程序如何提供试用功能(MS Windows,MS Office,Adobe Photoshop等),并回想起300 KB应用程序破解它们的难易程度:)
如果您想使其安全,那么您需要使用生成和可过期的许可证密钥 - 更好地使用许可证服务器,因为离线密钥生成/验证算法也很容易被黑客入侵。
如果没有登录/计算机/任何其他身份识别,则无法实施基于角色的系统,因为您需要区分用户。唯一的方法是为不同的角色实现不同的应用程序。
没有服务器的权限/角色等也意味着硬编码的权限,这非常糟糕 您可以创建类似资源文件的内容,其中包含有关谁是管理员以及谁是简单用户的信息(例如,对于双角色系统)。
然后,在您的代码中,根据角色实现逻辑:
if (Session.User.IsAdministrator) // all are own-written classes, of course
buttonRemoveUser.Show();
可以通过使用角色提供程序等更好的方法来完成,这完全取决于您。
但是,可以通过反编译器/资源查看器轻松破解这些用户和角色。此外,如果任何用户凭据被泄露,您无法阻止此用户或更改其密码 正确的解决方案是使用服务器身份验证。
您希望创建一个具有功能的系统,这需要客户端 - 服务器架构 在尝试将其实现为离线应用程序之前,请三思 如果可行且安全,那么为什么人们会使用服务器?