有一个C\S结构软件.
CS端由注册码(由每台机器信息得到唯一注册码)控制合法性.
以前一个客户在用本软件时,由于要操作数据库,一个客户最多指定个5.6个注册码.但到后面发现,这种指定安装机器在现实业务中不是很方便,如果人要走了,机器坏了,每安装
一次都要向我们要新的注册码,他们麻烦,我们也麻烦.大家有没有好的办法:
1:对于一个客户,只要安装了一个合法的CS端,其他所安装的CS端都为合法.
2:实现第1条后,这个客户的CS端,不能去连接其他合法客户的CS端

解决方案 »

  1.   

    用服务是最科学合理的
    但对服务是不很熟.
    但现在程序已定型,如果现在再加一个服务的话,重写服务,配置端口,打包...有点麻烦.
    再想想,其实开个服务来验证,有点小题大作,可不可以用服务以外的方法!再:如果用服务的话,那么在C端安装时,要注册码,C端要如果知道其他客户的注册码的话,那它也可以控制其他客户的服务器!
    又:想,如果能首先确定客户的注册码,然后写死在C端里,每次安装时,就读取写死的注册码,这样的话,倒能控制注册码,可是这样的话,每个客户要都要重新打包一下程序,麻烦.有没有这种方法和服务中间的方法
      

  2.   

    mei kan 明白楼住的意思。。
      

  3.   

    晕了!讲得太详细了吧!让大家都绕进去了!
    C端:Client端,用户用来操作数据库
    现在我们的作法是,客户想安装一个C端就由,所安装机器的机器码得到一个相对应的注册码!但如果客户需有很多人来控制C端的话,那每次问我们要注册码,显然不行.后来,就想,如果一个客户要,我们就只要给一个注册码,然后,客户下面要管理的人如果安装C端,就不要再用注册码
    最主要满足:
    不想要C端扩散.(不能出现比如:A客户注册了,B客户有了安装程序,然后用A客户的注册码使用)
      

  4.   

    hai shi mei kan 明白搂住的意思。
      

  5.   


    再表达.........-_-|软件环境:由WEB服务,数据库,Client端组成(简称:C端)。C端来控制数据库,再由WEB服务来表现。软件由C端来控制软件合法性。C端每次安装时,就要输入安装计算机生成的特定机器码对应的注册码来验证合法性(每台计算机的注册码都不同)。注册机由我们公司控制。客户:一个单位,他们可能购买一套我们的软件。
    用户:客户下的部门,或客户子单位。现在的情况:如果客户有许多的用户要安装C端时,那么,每安装一次,客户就要向我们要一个注册码。这样客户会很不方便。想要达到的情况:对于一个客户,我们只要给一个注册码。以后客户不管有多少用户安装C端,都不会向我们要注册码。同时也要保证他的用户不能拿了我们的安装程序,就能再单独再做一个服务器(防非法扩散)。
      授权文件
    =======================================================
    是不是给客户一个的验证合法性的文件.(将注册码写到文件中,然后用户通过此文件来安装)
    ----------------
    那如果客户下面的用户随便那个得到我们的安装程序和一个验证文件,那么他就可以拿到其他单位,再做一个服务器。我们就不好控制了。
    我见过的用友是控制站点,也即登陆的人数
    速达是控制机器,重装系统都要重新注册
    ======================================
    登录的人数:好像和我说的问题不是一回事,我是想要得到安装的合法性,不是软件使用的合法性。
    重装系统都要重新注册:怎么控制安装合法性。
      

  6.   

    晕晕乎乎的。。你想控制你的软件非法传播用序列号的方式。那么。你怎么区别你的软件是装到了合法客户的电脑上还是非法客户的电脑上呢?
    首先你要确定你的每一个“客户”下的所有电脑都有一个全球性的唯一标识呢?答案是不可能。所以你现在能做的只有。。
    1、收集所有他们公司的可能装这套系统的硬件ID,这似乎不可能。这样集成到你的授权文件中。
    2、通过互联网来控制你的C端,前提是你的客户端必须上互联网。
    3、在他们公司使用一个服务器。所有C端的验证都交由这个服务器来完成。
    4、(后面想出来的,也许可行)假如他们公司里面已经装了一个C端了(设为A)。那么假设他们的其他安装C端的电脑能够访问这个C端(A)的话,就用这个C端作为一个序列号验证服务器。那么以后的电脑就不用输入序列号了。也就是说。所有的C端在安装时候可以由用户或者电脑自己检测(在同一IP段可以用广播地址检测一下)有没有其他的C端在使用中。如果有。那么这个安装的C端可以从已经使用的C端获取序列号或者授权文件来尝试合法安装。如果不合法则不安装。如果合法投入正常使用中后,那么这个后面安装好的C端也可以作为一个服务器来给以后的C端提供序列好或者授权文件。。-_-晕晕乎乎。感觉怎么那么像BT啊!
      

  7.   

    HELANSHI(贺兰石),幸亏现在是秋天了,要不然在夏天,看你晕晕乎乎的。。,都快要晕倒了!呵呵,谢谢你和我一起讨论这个问题!你所提的方案都很专业!
    第1,2可能不太适合我们公司,第3,4个方案个人感觉差不多,一个是先确定注册码,一个是动态确定注册码.但都需要一个服务!这些天,我也找了很多资料,看来要实现我的想法,只能研究研究服务了!
      

  8.   

    2007年突然间看以前的问题,发现这条没有将最后的结果给写出来,补充:最后面采用的方案是在服务器端用一个服务
    每当客户端运行,进行有效性控制的时候,用winsock向服务器发一个机器码(也就是服务器上的机器码),如果服务器上是正常注册了(注册码存在注册表中)的,那么就会返回成功.否则就是不成功,客户端也只能是未注册登录.