我正在建立一个小型
winforms应用程序使用:
ayende rhino licensing.许可工作正常,我可以创建许可证并按我的选择分发它们.
问题是,如何让每个许可证只在一台机器上运行?我知道在ayende的项目中有一个名为LicensingService的课程,我相信它会像我正在尝试做的那样,但我无法弄明白.我做了很多搜索,无法找到除this one之外的任何教程.
也许有人已经实现了这一点,或者有一些关于如何实现这一目标的提示?如果有帮助的话,我可以访问网络服务器.
一如既往,非常感谢任何帮助.
最佳答案 取决于你想要让用户诚实地让你感到烦恼.你可以实现一个HWID(参见
How to fast get Hardware-ID in C#?关于如何生成它们),它们在系统之间是唯一的,然后让你的程序检查HWID是否与在线存储它们的地方找到的ID相匹配(通常使用数据库) ).
毋庸置疑,这将使您的应用程序需要互联网连接才能运行,这对您的用户来说可能有点令人沮丧.
或者您可以将HWID与序列合并,让您的应用程序执行相同操作以验证它们是否匹配,但普通的破解程序很容易破解.
在一天结束时,.net并不是最好的安全性,因为您可以轻松获取源代码并根据需要修改程序集以修补某些保护.在决定保护软件的路线时,请记住这一点.