设置应用程序域级别的安全策略

.NET Framework 既提供代码访问安全机制,也提供基于角色的安全机制。 由于具有这两种安全机制,您能够对代码可执行的操作进行细微的控制。 它还提供一种基础结构,使组件能够决定用户可以执行的操作。 对于在宿主创建的应用程序域中运行的代码,宿主对这两种安全机制都具有高度的控制。

当管理员和宿主使用代码访问安全机制时,无论是哪个用户在执行代码,都将根据代码本身的特性来确定代码可执行的操作。 代码特性称作证据,它可以包括下载代码的网站或区域,或发布代码的供应商的数字签名。

当加载并运行代码时,代码访问安全机制会将此证据映射到一组权限。 这些权限定义代码可以执行的特定操作。 管理员或宿主会将特定的证据映射到向代码授予的权限。 此映射称作安全策略。 例如,管理员可能会创建一种安全策略,以便向下载自 Intranet 的代码授予一组较高的权限(如访问文件系统),而向下载自 Internet 的代码授予一组较低的权限。

宿主对应用程序域设置的安全策略称为应用程序域安全策略。 管理员也会在企业、计算机和用户级别定义一些策略,以确定向代码授予的全部权限,这些策略和应用程序域安全策略之间存在相交的情况。 请注意,应用程序域策略只能限制更高级策略(企业、计算机或用户)所授予的权限集。

宿主可通过对 System.AppDomain 类调用 AppDomain.SetAppDomainPolicy 方法来设置应用程序域级别的策略。 宿主只有在被授予了 SecurityPermission 来控制证据时才能设置应用程序域级别的策略。

请参见

参考

PermissionSet

System.AppDomain

其他资源

承载概述

Evidence

Security Policy

代码访问安全性