程序授权问题,请赐教! 程序分多个版本,不同版本有不同的功能,根据客户所购版本自动开发该版本功能,其他功能隐藏。请问这种授权方式,用什么方式比较好。希望有过经验的指教一下,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、菜单保存到数据库中,有字段标记是否已授权,如果授权了则显示如果不授权则不显示,然后做个工具针对于不同的版本设置哪些菜单是授权的哪些是未授权的2、通过加密狗,在加密狗中保存授权菜单的唯一标识3、通过一个dll或其他文件返回授权菜单的唯一标识 其实看不到菜单就好了菜单table用户id 是否显示(Y or N)登陆判断用户在菜单中的类型是Y海水N Y显示 N不显示KO 比如菜单表中有如下几行菜单名字如下1 2 3 4 5 6 Y 张三(用户名 同下)1 3 4 5 6 7 8 9 Y李四11 3 4 5 6 7 8 9 Y李四21 3 4 5 6 7 8 9 Y李四31 3 4 5 6 7 8 9 Y李四41 3 4 5 6 7 8 9 Y李四5这样根据用户判断用户的菜单个数不过没增加一个用户都要在菜单中添加 不方便如下简单点 好维护 刚刚想到的用户表用户名 用户菜单类型张三 Y李四 Y马子 Y王二 N大家 KCSND 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了 反之用户表肯定要插入用户的 插入的时候选择一下菜单的类型 比如张三的类型是Yselect * from table 用户表 inner join 菜单表 on 用户表.xx=菜单.xx where username='张三'这样可以的菜单还可以写在txt excle 缓存 配置文件中没有了 希望能帮到你 说的应该明白了吧 现在用的就是五楼的方式,有一点不同的是,我是把用户的栏目授权情况保存到我的服务器数据里,他们的程序登陆后,远程从我的数据库获取栏目授权情况,有授权就显示,没授权就隐藏。但是有个问题,客户的数据库端口必须开放,目前就遇到过一个客户的机房把1433对外访问的权限给禁用了,搞的客户后台得不到授权信息,报错。但是如你所说,菜单写在txt excle 缓存 配置文件中,那怎么加密,不加密还有意义吗,客户自己想怎么改就怎么改。 也用过把授权代码写进dll,但是每次客户授权功能变了,又要传dll给他覆盖,有很多用户完全不懂技术,连FTP是什么都不知道,很费时费力。 修改程序设计的前提是,除了远程访问SQL Server数据库,你还有编写过网络程序的经验么? 通常采用插件机制完成,用户插件配置同时保存在本地和服务器上,客户端明文木有关系(当然你要想加密这也并不困难),反正服务器端还有验证。配置文件更新通过md5可以判定,然后根据配置文件去下载相应插件ps:我自己实际上通常会把所有菜单功能全打开,你能看到所有功能,但是不能点击,因为他能看到更好的功能确无法使用,反而更容易让他升级,想想迅雷把,功能都在这里,你都可以用但有限制的用,不想有限制,ok,交钱把 C#编辑前后单元格宽高问题 asp.net怎么没有ToolTip提示解释? 求助:有谁做过 智能商标查询预警系统 啊 提一个软件结构设计的问题 利用存储过程分页的困惑 刚发现从工具栏里拖出来的类型化数据集还要手动 Fill();郁闷。 关于绑定问题 Saucer:让postback事件触发以后,焦点停留在原任一指定控件上?这个方法在ascx中的衍生问题。 asp.net 客户端加密的问题 如何对dataset中的一张表中一列赋值? 文件操作时 造成Session 丢失问题 该如何解决? 半吊子程序员求有经验的程序员支招
菜单table
用户id 是否显示(Y or N)
登陆判断用户在菜单中的类型是Y海水N
Y显示 N不显示
KO
菜单名字如下
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 缓存 配置文件中
没有了 希望能帮到你
说的应该明白了吧
但是有个问题,客户的数据库端口必须开放,目前就遇到过一个客户的机房把1433对外访问的权限给禁用了,搞的客户后台得不到授权信息,报错。
但是如你所说,菜单写在txt excle 缓存 配置文件中,那怎么加密,不加密还有意义吗,客户自己想怎么改就怎么改。