基于角色的安全性介绍

更新:2007 年 11 月

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

.NET Framework 基于角色的安全性通过生成可供当前线程使用的主体信息来支持授权,而主体是用关联的标识构造的。标识(及其帮助定义的主体)可以基于 Windows 帐户,也可以是同 Windows 帐户无关的自定义标识。.NET Framework 应用程序可以根据主体的标识或角色成员条件(或者这两者)做出授权决定。角色是指在安全性方面具有相同特权的一组命名主体(如出纳或经理)。一个主体可以是一个或多个角色的成员。因此,应用程序可以使用角色成员条件来确定主体是否有权执行某项请求的操作。

为了使代码访问安全性易于使用并提供与它的一致性,.NET Framework 基于角色的安全性提供了 PrincipalPermission 对象,此对象使公共语言运行库能够按照与代码访问安全性检查类似的方式执行授权。PrincipalPermission 类表示主体必须匹配的标识或角色,并同声明式和命令性安全检查都兼容。您也可以直接访问主体的标识信息,并在需要时在代码中执行角色和标识检查。

.NET Framework 提供了灵活且可扩展的基于角色的安全性支持,足以满足广泛的应用程序的需要。可选择同现有的身份验证结构(如 COM+ 1.0 服务)相互操作,或创建自定义身份验证系统。基于角色的安全性尤其适用于主要在服务器处理的 ASP.NET Web 应用程序。不过,.NET Framework 基于角色的安全性既可用于客户端,也可用于服务器。

请参见

参考

PrincipalPermission

其他资源

基于角色的安全性

安全性的基础概念