Silverlight4控件纯客户端注册验证

Silverlight4控件纯客户端注册验证,第1张

概述本文实现了一个实验性的Silverlight控件客户端注册验证机制。希望做过这方面的朋友多给些指导性意见。     先给大家介绍一下Silverlight客户端控件的使用情景。一般来说,Silverlight客户端控件会销售给开发Silverlight程序的公司,他们是控件的购买者。他们开发的程序中会用到Silverlight客户端控件。但是Silverlight控件最终是在浏览Silverli

本文实现了一个实验性的Silverlight控件纯客户端注册验证机制。希望做过这方面的朋友多给些指导性意见。
   

先给大家介绍一下Silverlight客户端控件的使用情景。一般来说,Silverlight客户端控件会销售给开发Silverlight程序的公司,他们是控件的购买者。他们开发的程序中会用到Silverlight客户端控件。但是Silverlight控件最终是在浏览Silverlight程序的网站用户机器上执行的。说的有点绕,请参照下图。

这个纯客户端注册验证机制主要流程如下:
1, 控件购买者下载使用Silverlight控件(Silverlight控件中包含PublicKey及验证license的逻辑)。
2, 控件购买者通过控件生成商提供的网站输入一些注册信息(如输入程序部署路径等唯一标示),付费,完成注册。控件生成商会记录这些信息,并使用PrivateKey生成一个RSA签名过的license文件。
3, 控件生产商会将这个RSA签名过的license文件返回给控件购买者。
4, 控件购买者会将license文件绑定到他开发部署的程序中。
5, 网站用户浏览控件购买者开发部署的网站,下载Silverlight控件在网站用户机器上执行,并验证license文件的签名及程序部署路径等唯一标识。

license格式如下:

 

license中记录了控件生成商数据库中license信息记录ID,强名称签名的目标控件程序集全名,程序部署路径等一些唯一性标示及防止篡改这些信息的RSA数字签名。

 

当用户浏览网站时,Silverlight控件会下载到在用户机器上执行,从而进行注册码验证工作。它会首先验证license的合法性(即使用RSA签名验证算法检验license文件是否被篡改),然后会判断程序集及唯一性标示是否正确。从而判断控件是否成功注册

   

验证license合法性代码如下:

 

验证程序集全名及程序部署路径等唯一性标示代码如下:

 

  

 

优点:
    +使用私钥签名,公钥验证,能有效防止伪造license文件及分析代码写出注册机(不考虑篡改程序逻辑的爆破方式)。
    +纯客户端验证不需要跨域访问,也不需要控件购买者在程序发布服务器端部署其他东西。

缺点:
    -比直接输入注册码麻烦
    -在现在的Silverlight版本中,只找到部署地址这个特征标示,因此只能做部署license授权。不能做成像WinForm控件那样为每个开发人员机器授权的方式。

 

另外,关于RSA算法和实现可以参考之前的一篇文章:《Silverlight中非对称加密及数字签名RSA算法的实现》。

 

欢迎大家给些意见。

总结

以上是内存溢出为你收集整理的Silverlight4控件纯客户端注册验证全部内容,希望文章能够帮你解决Silverlight4控件纯客户端注册验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1027934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存