许可管理器
公司的产品现在要提交给客户了,需要做一个许可管理器,来控制客户的客户端数量。
许可管理器应该具有如下功能:
1、在服务器端安装。
2、支持并发许可控制;
3、支持从服务器端与客户端的消息传递,即:客户端可以注册许可,服务器端也可删除许可,强制客户端退出。
在网上查了一下,这样的产品不是很多,考虑到做起来应该不是很复杂,就打算由自己实现。
由于需要客户端与服务器端的通讯,首先考虑到使用Web Service,用它可以很方便地实现客户端到服务器端的访问,但是在实现服务器端发消息给客户端的时候不是很方便。最后决定用socket来实现,如下图:
(使用对称加密的方式,将许可信息保存在许可文件中,在服务器端启动服务的时候,加载这些信息。)
按上面的思路,许可管理很快就完成了,在生成许可文件的时候,突然想到了一个问题:反编译。
从网上下载Salamander.Dot.NET.Decompiler,反编译对称加密模块,结果.......地球人都知道。
还得想办法,使用xenocode进行混淆,从效果来看还是不错的,但是程序一运行,发现已经不能解释许可文件!
晕了。
许可管理器应该具有如下功能:
1、在服务器端安装。
2、支持并发许可控制;
3、支持从服务器端与客户端的消息传递,即:客户端可以注册许可,服务器端也可删除许可,强制客户端退出。
在网上查了一下,这样的产品不是很多,考虑到做起来应该不是很复杂,就打算由自己实现。
由于需要客户端与服务器端的通讯,首先考虑到使用Web Service,用它可以很方便地实现客户端到服务器端的访问,但是在实现服务器端发消息给客户端的时候不是很方便。最后决定用socket来实现,如下图:
(使用对称加密的方式,将许可信息保存在许可文件中,在服务器端启动服务的时候,加载这些信息。)
按上面的思路,许可管理很快就完成了,在生成许可文件的时候,突然想到了一个问题:反编译。
从网上下载Salamander.Dot.NET.Decompiler,反编译对称加密模块,结果.......地球人都知道。
还得想办法,使用xenocode进行混淆,从效果来看还是不错的,但是程序一运行,发现已经不能解释许可文件!
晕了。