基于角色的安全性
在财务或商务应用程序中经常使用角色来强制策略。 例如,应用程序可能根据提出请求的用户是不是指定角色的成员,对要处理的事务大小加以限制。 职员有权处理的事务可能小于指定的阈值,主管拥有的权限可能比职员的高,而副总裁的权限可能还更高(或根本不受限制)。 当应用程序需要多个批准完成某项操作时,也可以使用基于角色的安全性。 例如一个采购系统,在该系统中,任何雇员均可生成采购请求,但只有采购代理人可以将此请求转换成可发送给供应商的采购订单。
.NET Framework 基于角色的安全性通过向当前线程提供关于 主体 的信息来支持授权,该主体根据关联的标识进行构造。 标识(及其帮助定义的主体)可以基于 Windows 帐户,也可以是同 Windows 帐户无关的自定义标识。 .NET Framework 应用程序可以根据主体的标识或角色成员条件(或者这两者)做出授权决定。 角色是指在安全性方面具有相同特权的一组命名主体(如出纳或经理)。 一个主体可以是一个或多个角色的成员。 因此,应用程序可以使用角色成员条件来确定主体是否有权执行某项请求的操作。
为了使代码访问安全性易于使用并提供与它的一致性,.NET Framework 基于角色的安全性提供了 System.Security.Permissions.PrincipalPermission 对象,此对象使公共语言运行时能够按照与代码访问安全性检查类似的方式执行授权。 PrincipalPermission 类表示主体必须匹配的标识或角色,且与声明性安全检查和命令性安全检查都兼容。 您也可以直接访问主体的标识信息,并在需要时在代码中执行角色和标识检查。
.NET Framework 提供了灵活且可扩展的基于角色的安全性支持,足以满足广泛的应用程序的需要。 可选择同现有的身份验证结构(如 COM+ 1.0 服务)相互操作,或创建自定义身份验证系统。 基于角色的安全性尤其适用于主要在服务器处理的 ASP.NET Web 应用程序。 不过,.NET Framework 基于角色的安全性既可用于客户端,也可用于服务器。
阅读本节之前,确保已理解安全性的基础概念中的材料。
相关主题
标题 |
说明 |
---|---|
解释如何设置与管理 Windows 标识和主体及一般标识和主体。 |
|
描述如何以声明和命令的方式实现权限对象。 |
|
描述如何以声明和命令的方式或通过直接访问主体对象来实现安全检查。 |
|
提供 COM+ 1.0 安全性同 .NET Framework 相互操作的方式概述。 |
|
介绍在使用 .NET Framework 安全性之前必须了解的基本概念。 |
|
列出并简述 .NET Framework 中包含的安全性工具。 |