代码组

重要说明重要事项

在 .NET Framework 4 版中,公共语言运行时 (CLR) 不再为计算机提供安全策略。Microsoft 建议使用 Windows 软件限制策略替代 CLR 安全策略。此主题中的信息适用于 .NET Framework 3.5 和更低版本,不适用于 4 和更高版本。有关此更改和其他更改的更多信息,请参见 .NET Framework 4 中的安全性更改

代码组是代码的逻辑分组,该分组具有指定的成员条件。 所有满足成员条件的代码均包括在该组中。 代码组拥有在策略授予过程中计算的关联的权限集。 管理员通过管理代码组和与它们关联的权限集来配置安全策略。

下表显示 .NET Framework 提供的代码组成员条件。 成员条件以类的形式实现。

成员条件

条件基于

所有代码

AllMembershipCondition

表示与所有代码匹配的成员条件。

应用程序目录

ApplicationDirectoryMembershipCondition

应用程序的安装目录。

哈希

HashMembershipCondition

MD5、SHA1 或其他加密哈希。

发行者

PublisherMembershipCondition

有效的 Authenticode 签名的公钥。

站点

SiteMembershipCondition

代码出自的 HTTP 站点、HTTPS 站点和 FTP 站点。

强名称

StrongNameMembershipCondition

加密型强签名。

URL

UrlMembershipCondition

代码出自的 URL,包括最后面的通配符(例如 http://site/app/*)。

区域

ZoneMembershipCondition

代码出自的区域。

公共语言运行时使用描述代码的标识特征(证据)来确定是否已符合组的成员条件。 例如,如果组的成员条件是“Code from the www.microsoft.com Web site”(www.microsoft.com 网站中的代码),则运行时检查证据以确定代码是否出自 www.microsoft.com。

每个代码组均与一个命名的权限集关联。 代码组还可以具有一些特性,这些特性影响如何使用代码组来定义安全策略。

企业策略级别、计算机策略级别和用户策略级别由代码组构成的层次结构表示。 应用程序域级别无法以管理方式来配置,但它具有可以编程方式设置的由代码组构成的层次结构。 每个层次结构的根都是包含所有代码的组。 “所有代码”组拥有子节点,而这些子节点又有子节点,以此类推。 如果代码是父代码组的成员,则该代码可以是该组的一个或多个子代码组的成员。 如果代码不是父代码组的成员,则它不能是该父代码组以下任何级别的任何代码组的成员。

代码组具有可选的说明特性和名称特性,您可以使用 .NET Framework 配置工具进行查看。

请参见

概念

代码组特性

证据

命名的权限集

其他资源

安全策略管理