基于角色的安全性

角色通常用于财务或业务应用程序以强制实施策略。 例如,应用程序可能会根据发出请求的用户是否是指定角色的成员,对正在处理的事务的大小施加限制。 职员可能有权处理小于指定阈值的事务,主管人员可能具有更高的限制,副总统可能还有更高的限制(或根本没有限制)。 当应用程序需要多个审批才能完成作时,也可以使用基于角色的安全性。 这种情况可能是一个购买系统,其中任何员工都可以生成购买请求,但只有购买代理才能将该请求转换为可发送给供应商的采购订单。

.NET 角色基础安全性通过将由关联身份构建的主体信息提供给当前线程,从而支持授权。 标识(以及它帮助定义的主体)可以基于 Windows 帐户,也可以是与 Windows 帐户无关的自定义标识。 .NET 应用程序可以根据主体的标识或角色成员身份或两者做出授权决策。 角色是一组命名的集合,这些主体在安全方面具有相同的权限(例如,出纳员或经理)。 主体可以是一个或多个角色的成员。 因此,应用程序可以使用角色成员身份来确定主体是否有权执行请求的作。

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

.NET 提供基于角色的安全支持,该支持灵活且可扩展,以满足各种应用程序的需求。 可以选择与现有身份验证基础结构(如 COM+ 1.0 服务)互作,或创建自定义身份验证系统。 基于角色的安全性特别适合在主要在服务器上处理的 ASP.NET Web 应用程序中使用。 但是,可以在客户端或服务器上使用基于 .NET 角色的安全性。

在阅读本部分之前,请确保了解 关键安全概念中显示的材料。

另请参阅