安全策略级别
重要事项 |
---|
在 .NET Framework 4 版中,公共语言运行时 (CLR) 不再为计算机提供安全策略。Microsoft 建议使用 Windows 软件限制策略替代 CLR 安全策略。此主题中的信息适用于 .NET Framework 3.5 和更低版本,不适用于 4 和更高版本。有关此更改和其他更改的更多信息,请参见 .NET Framework 4 中的安全性更改。 |
.NET Framework 提供四种安全策略级别来计算程序集或应用程序域的权限授予。 每个级别均包含自己的代码组层次结构和权限集。 在计算允许的权限集时,运行时求出在各个级别授予程序集的权限集的交集。 所得到的授予权限是策略授予中所有参与级别允许的权限的总和。
下表描述 .NET Framework 安全性提供的四种安全策略级别。
策略类型 |
指定方 |
适用对象 |
---|---|---|
企业级策略 |
管理员 |
在其中分发企业配置文件的企业设置中的所有托管代码。 |
计算机策略 |
管理员 |
计算机上的所有托管代码。 |
用户策略 |
管理员或用户 |
当公共语言运行时启动时,与当前操作系统用户关联的所有进程中的代码。 |
应用程序域策略 |
应用程序域宿主代码 |
宿主的应用程序域中的托管代码。 |
策略级别是这样一个层次结构:企业级策略在顶部,其下是计算机策略,再往下是用户策略,最下面是应用程序域策略。 在计算权限授予时,运行时从该层次结构的顶部开始,然后向下进行计算。 较低的策略级别不能对在较高级别上授予的权限进行增加,但是可以使权限减少。 默认情况下,用户策略和应用程序域策略的限制性小于计算机策略和企业级策略。 大部分默认策略存在于计算机级别。 有关默认安全设置的更多信息,请参见默认安全策略。
向程序集授予权限时,运行时将所有现有策略(企业级、计算机、用户和应用程序域)的要求和程序集的请求的权限一起考虑。
向应用程序域授予权限时,运行时使用企业级策略、计算机策略和用户策略。