基于角色的安全性 .NET Framework 基于角色的安全性允许 Web 应用程序根据与应用程序交互的用户的标识或者角色成员身份进行安全决策。如果应用程序使用 Windows 身份验证,则角色就是 Windows 组。如果应用程序使用其他形式的身份验证,则角色就是由应用程序定义的,用户和角色的详细信息通常维持在 SQL Server 或者基于 Active Directory 的用户存储中。
已经进行身份验证的用户的身份及其相关的角色成员身份是 Web 应用程序通过 Principal 对象获得的,后者附加在当前 Web 请求中。
图 1 显示了 Web 应用程序中如何使用用户安全性来限制用户访问 Web 页、业务逻辑、操作和数据访问的典型逻辑视图。
代码访问安全性是一种重要的附加防范机制,可以用来提供对一段代码的约束。管理员可以配置代码访问安全策略以限制代码能够访问的资源类型以及能够执行的其他特权操作。从 Web 应用程序的角度来看,这意味着如果在某个危及安全的攻击过程中,攻击者控制了 Web 应用程序进程或者插入了在进程中运行的代码,则代码访问安全性提供的这些附加约束就能够限制可能带来的损害。
图 2 显示了在 Web 应用程序中如何使用代码访问安全性来限制应用程序访问系统资源、其他应用程序拥有的资源和特权操作(如调用非托管代码)的逻辑视图。