C#面试题更新 2026-08-05

在 .NET 框架中,代码访问安全(CAS)策略所定义的策略级别有哪些?每个级别又是如何与权限集(PermissionSet)进行关联和配置的?

技术原理C#.NET

考察说明

考查对 .NET 代码访问安全策略层级结构及权限集定义机制的理解。

回答思路

  1. 【回答框架 1】代码访问安全(CAS)通过策略级别来管理不同范围的安全策略,主要有三个级别:企业级、机器级和用户级。企业级策略由管理员为整个组织定义,机器级策略针对本地计算机,用户级策略则针对个别用户账户。
  2. 【回答框架 2】每个策略级别都包含了多个命名的权限集,例如 FullTrust、LocalIntranet、Internet 等。策略级别定义了这些权限集及其关联的代码组,通过代码组的条件(如站点、强名称或区域)将代码匹配到相应的权限集。
  3. 【回答框架 3】在 .NET Framework 1.x 和 2.0 中,管理员可以使用 .NET Framework 配置工具(如 mscorcfg.msc)或代码访问安全策略工具(Caspol.exe)来管理这些策略级别。每个级别可以独立设置和覆盖,从而实现分层管理。
  4. 【回答框架 4】权限集实际上是 CodeAccessPermission 派生类实例的集合,它表示一组权限。策略级别的评估是从企业级到用户级逐层执行的,最终授予当前代码的权限是各层权限的交集,即代码所请求的权限必须被所有相关级别允许。
  5. 【关键点 1】CAS 策略分为企业、机器、用户三个级别。
  6. 【关键点 2】权限集是 CodeAccessPermission 对象的集合。
  7. 【关键点 3】代码组通过条件匹配将代码关联到特定权限集。
  8. 【关键点 4】策略评估从企业级到用户级逐层执行,最终权限为交集。
  9. 【易错点 1】不能混淆 CAS 策略级别与 CLR 的安全权限,它们处于不同抽象层次。
  10. 【易错点 2】现代 .NET 中 CAS 已过时,不应在 .NET Core 及更高版本中实现依赖 CAS 的安全方案。