作者 内容
 设计梦想   请教:如何在三层结构的系统中,实现权限控制?

详细说明如下:
系统基于com/com+技术
开发工具为VB+ASP
前端采用Application和Browser相结合的方式

主要的问题:
1、如何控制客户端(可能是远程)对服务器端组件的调用权限
2、如何控制不同等级的用户访问组件里对象的不同方法
3、如何控制不同用户通过方法获得不同等级的内容

希望大家指点,并祝工作顺利!
 02/02/19 09:28 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 sealw  研究一下MTS?

 02/02/19 11:37 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 kinghq  我的想法,有待实践

用户验证:用户组+用户,允许用户跨越不同的用户组;
权限对象:将权限对象化处理,通过获取对象控制符控制前端对象调用;
对象设置:将现有内容、方法对象化;如有必要,可以将其设置为前端对象;
在这个想法中有几点需要衡量:权限对象在处理对象控制符上的效率对现有
组件系统处理效率的影响;内容、方法对象对现有对象体系的影响;前端对象
的定义对前一版本的前端对象定义的影响。

这个想法如何?
 02/02/19 13:14 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 w_rose   回复: 请教:如何在三层结构的系统中,实现权限控制?

1. 在客户端访问每个页面时都判断一次用户访问当前模块的权限。方法是取得当前登录用户的
2. 根据1.,需要设计“用户、模块、访问权限”三类。“用户”用来设置用户的登录名、密码(最好不要保存明文,而保存密文)。访问权限用来设置某个用户是否有权访问某个模块。
3. 模块应当由系统自动将资料插入数据库。用户、访问权限需要设计页面,由用户编辑资料。
4. 设计一个用户登录画面。用户登录时,清除前边已经登录的用户的资料,然后核对登录用户的密码,正确后初始化系统的全局对象--登录用户。如果未初始化此对象,1.中所述的操作就会立即出错,从而阻止了未登录用户访问任何页面。
5. 判断当前登录访问某模块权限时,只需要查找相关的“访问权限”资料是否存在即可。可以将进一步将模块分为“只浏览”、“浏览并且编辑”、“不编辑但是审查签字”三类。
5. 可以在“用户”对象中设计一个“朋友”引用指向另一个“用户”对象。当查找访问某模块权限时没有找到相关资料,则查找“朋友”访问此模块的权限。如果“朋友”也没有定义此权限,则查找“朋友的朋友”,直到找的权限或者没有“朋友”。这样,当给一个比较大的公司使用时,可以避免“访问权限”需要设置太多资料。但是要限制查找“朋友”的深度,以免循环。
 02/02/21 12:10 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 leonshi   回复: 我们是这样做的...

在表示层(Browser)在每做一个操作时都要把用户名与密码提交给Application Server或Web Server,Server根据其用户名判断是否能调用某一个功能。为了加快验证的速度,当用户第一次验证之后,其用户名和密码就被调入到Application Server(Web Server)的内存中,下一次验证就会快很多,但如果是7X24的系统则要加一个清空的进程(应该很简单)。

至于组件,用户组,角色,功能,功能级则是系统分析的范畴,应根据项目的具体情况,但我看来你的权限与组件及组件功能有关,就建立相应的分析模型就可以了。
 02/02/21 16:22 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 sealw  就我的理解,如果是在java世界里,这个是JAAS考虑的范畴。对应到com/com+,应该是MTS的范畴。

 02/02/22 09:23 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首