默认安全策略
![]() |
---|
在 .NET Framework 4 版中,公共语言运行时 (CLR) 不再为计算机提供安全策略。Microsoft 建议使用 Windows 软件限制策略替代 CLR 安全策略。此主题中的信息适用于 .NET Framework 3.5 和更低版本,不适用于 4 和更高版本。有关此更改和其他更改的更多信息,请参见 .NET Framework 4 中的安全性更改。 |
默认情况下,会将计算机策略设置为下表中显示的值。 因为在确定允许的权限集时是求各策略级别的交集,所以默认安全策略实际上是由计算机策略设置确定的。 注意,这些表表示的是默认策略设置所使用的命名的权限集和权限,并没有列出为自定义安全策略而提供的所有命名的权限集和权限。
下表列出了计算机策略的默认代码组,以及默认情况下这些代码组所获得的命名的权限集。 例如,源自本地计算机的代码被分配给“我的电脑区域”,默认情况下会获得完全信任权限。
代码组 |
默认情况下获得的命名的权限集 |
---|---|
|
完全信任 |
|
本地 Intranet |
|
Internet |
|
Nothing |
![]() |
---|
在 .NET Framework 1.0 Service Pack 1 和 Service Pack 2 中,Internet Zone 代码组获得 Nothing 命名权限集。在所有其他 .NET Framework 版本中,Internet Zone 代码组获得 Internet 命名权限集,如上表中所述。 |
虽然在默认情况下,All Code 组获得 Nothing 权限集,但这并不意味着任何代码都没有权限,因为匹配的代码组要组合在一起(称为“联合”)来计算允许的权限集。
下表说明了组成默认权限集的各个权限。 左列列出了单个权限对象,而右边各列表示各权限集中这些对象的配置。 例如,来自“本地 Intranet 区域”的代码获得“本地 Intranet”权限集。 此表显示“本地 Intranet”权限集由无限制的 DNSPermission、无限制的 FileDialogPermission 等组成。 注意,默认情况下,来自“Internet 区域”的代码不会获得 Internet 权限集,而是获得 Nothing 权限集。
权限 |
完全信任权限集 (无限制地访问所有权限,包括未列出的那些权限) |
Nothing 权限集 (无权限,无权执行) |
Local Intranet 权限集 |
Internet 权限集 |
---|---|---|---|---|
无限制 |
没有访问权 |
没有访问权 |
||
无限制 |
没有访问权 |
读取用户名(环境变量) |
没有访问权 |
|
无限制 |
没有访问权 |
没有访问权 |
||
无限制 |
没有访问权 |
|||
无限制 |
没有访问权 |
磁盘配额为 9223372036854775807 |
磁盘配额为 512000 |
|
无限制 |
没有访问权 |
|||
无限制 |
没有访问权 |
没有访问权 |
||
无限制 |
没有访问权 |
|||
无限制 |
没有访问权 |
虽然默认安全策略适用于大多数情况,但管理员可以修改或自定义安全策略,使其满足他们单位的特定需要。 有关详细信息,请参见管理安全策略。
注意,对于是否能获得由放入全局程序集缓存中的程序集自动执行的完全信任,代码受与固有的 LinkDemand 相关的其他限制的制约。 除非将 AllowPartiallyTrustedCallersAttribute 应用于全局程序集缓存中的某个程序集,否则所有未获得 Full Trust 权限集的代码在尝试链接到该程序集时,都会生成 SecurityException。 有关更多信息和具有 AllowPartiallyTrustedCallersAttribute 的程序集的列表,请参见通过部分受信任的代码使用库。