程序分多个版本,不同版本有不同的功能,根据客户所购版本自动开发该版本功能,其他功能隐藏。请问这种授权方式,用什么方式比较好。希望有过经验的指教一下,谢谢!

解决方案 »

  1.   

    1、菜单保存到数据库中,有字段标记是否已授权,如果授权了则显示如果不授权则不显示,然后做个工具针对于不同的版本设置哪些菜单是授权的哪些是未授权的2、通过加密狗,在加密狗中保存授权菜单的唯一标识3、通过一个dll或其他文件返回授权菜单的唯一标识
      

  2.   

    其实看不到菜单就好了
    菜单table
    用户id 是否显示(Y or N)
    登陆判断用户在菜单中的类型是Y海水N 
    Y显示 N不显示
    KO
      

  3.   

    比如菜单表中有如下几行
    菜单名字如下
    1 2 3 4 5 6 Y 张三(用户名 同下)
    1 3 4 5 6 7 8 9 Y李四1
    1 3 4 5 6 7 8 9 Y李四2
    1 3 4 5 6 7 8 9 Y李四3
    1 3 4 5 6 7 8 9 Y李四4
    1 3 4 5 6 7 8 9 Y李四5
    这样根据用户判断用户的菜单个数
    不过没增加一个用户都要在菜单中添加 不方便
    如下简单点 好维护 刚刚想到的
    用户表
    用户名 用户菜单类型
    张三   Y
    李四   Y
    马子   Y
    王二   N
    大家   K
    CSND  Z菜单表
    菜单类型 菜单功能……(1 2 3 4 5 6 7 8 9 代表菜单的名字)
        Y      1 2 3 4 5
        N      1 2 3 4 5 6 7 8 9
        K      1 2 3 4
        Z      1 2 3 4 5 6 7 8 9 10
    这样只要在用户里面设定类型就OK了 反之用户表肯定要插入用户的 插入的时候选择一下菜单的类型 比如张三的类型是Y
    select * from table 用户表 inner join 菜单表 on 用户表.xx=菜单.xx where username='张三'
    这样可以的
    菜单还可以写在txt excle 缓存 配置文件中
    没有了 希望能帮到你 
    说的应该明白了吧
      

  4.   

    现在用的就是五楼的方式,有一点不同的是,我是把用户的栏目授权情况保存到我的服务器数据里,他们的程序登陆后,远程从我的数据库获取栏目授权情况,有授权就显示,没授权就隐藏。
    但是有个问题,客户的数据库端口必须开放,目前就遇到过一个客户的机房把1433对外访问的权限给禁用了,搞的客户后台得不到授权信息,报错。
    但是如你所说,菜单写在txt excle 缓存 配置文件中,那怎么加密,不加密还有意义吗,客户自己想怎么改就怎么改。
      

  5.   

    也用过把授权代码写进dll,但是每次客户授权功能变了,又要传dll给他覆盖,有很多用户完全不懂技术,连FTP是什么都不知道,很费时费力。 
      

  6.   

    修改程序设计的前提是,除了远程访问SQL Server数据库,你还有编写过网络程序的经验么?
      

  7.   

    通常采用插件机制完成,用户插件配置同时保存在本地和服务器上,客户端明文木有关系(当然你要想加密这也并不困难),反正服务器端还有验证。配置文件更新通过md5可以判定,然后根据配置文件去下载相应插件ps:我自己实际上通常会把所有菜单功能全打开,你能看到所有功能,但是不能点击,因为他能看到更好的功能确无法使用,反而更容易让他升级,想想迅雷把,功能都在这里,你都可以用但有限制的用,不想有限制,ok,交钱把