基于角色的安全性(一)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 montaque 的 blog

基于角色的安全性(一)

montaque

    在财务或商务应用程序中经常使用角色来强制策略。例如,应用程序可能根据提出请求的用户是否是指定角色的成员,对正在处理的事务的大小加以限制。职员有权处理的事务可能小于指定的阈值,主管拥有的权限可能比职员的高,而副总裁的权限可能还更高(或根本不受限制)。当应用程序需要多个批准完成某项操作时,也可以使用基于角色的安全性。例如一个采购系统,在该系统中,任何雇员均可生成采购请求,但只有采购代理人可以将此请求转换成可发送给供应商的采购订单。(msdn原话)

       有时候,我们需要判断执行当前sub的用户要求有一定的权限,最基本的比如说必须是windows中的管理员级别的帐户,这时候我们就要判断执行当前线程用户的角色问题。我们知道多个应用程序域可以在一个进程中运行;但是,在应用程序域和线程之间没有一对一的关联。多个线程可以属于一个应用程序域,尽管给定的线程并不局限于一个应用程序域,但在任何给定时间,线程都在一个应用程序域中执行。

于是我们就要从线程入手,我执行当前线程的用户信息加到执行环境中,在.net中有一个类,appdomain。下面给出一个简单的例子:

imports system

imports system.threading

imports system.security

imports system.security.permissions

imports system.security.principal

 

module onlyadmin

       sub main()

              '将用户的角色和标识跟windows关联起来。             appdomain.currentdomain.setprincipalpolicy(principalpolicy.windowsprincipal)

              dim user as windowsprincipal = ctype(thread.currentprincipal, windowsprincipal)

本文关键:AppDomain,Role-based
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top