首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

多用户排他处理解决思路

2012-01-26 
多用户排他处理手头上的项目要求对各个功能模块进行排他处理,比如用户1第一个使用了模块1,他有编辑的权限,

多用户排他处理
手头上的项目要求对各个功能模块进行排他处理,比如用户1第一个使用了模块1,他有编辑的权限,如果用户2也使用模块1,那么就只有阅览的权限了。

按照客户的要求,exe只包含菜单,其它对数据的处理全部在dll里进行,并且dll是放在服务器上,各用户通过远程调用。

请问,如果所有的用户都调用相同的程序,那么如何判断多个用户id的使用权限呢,并且怎么知道哪个人对应哪个用户id呢?麻烦大家帮忙,谢谢!



[解决办法]
使用数据库或配置文件给功能模块加标志,如果有用户已进入模块则标志为1,其他用户进入模块前先检查标志,如果为1则只有读权限。
[解决办法]
用户表(userid,username...) pk: userid
功能表(functionid,functionname,isactive) pk:functionid,isactive 表示该功能是否活动
权限表(userid,functionid) pk:userid + functionid

找出某个用户非活动的权限:
select a.* from 功能表 as a inner join 权限表 as b on a.functionid = b.functionid and a.isactive = 0 where b.userid = '*** '

[解决办法]
郁闷 ,这个也要用程序实现啊。
要想得到用户A,B的ID,你需要有个用户表,里面存储用户名,用户ID,密码什么的。
当用户调用程序时,查询此用户ID就可以了。

或者建个用户对象。
class 用户
{
private String 用户名,用户ID
用户名{
get {}
set {}
}
用户ID{
get {}
set {}
}
...

}

上面是用C写的。你可以转成VB的。上面有两个属性,一个是用户名属性,一个是用户ID属性。
当用户调用程序时,就可以通过调用属性 [用户ID]得到了。

热点排行