设置应用程序域级别的安全策略
更新:2007 年 11 月
.NET Framework 既提供代码访问安全机制,也提供基于角色的安全机制。由于具有这两种安全机制,您能够对代码可执行的操作进行细微的控制。它还提供一种结构,使组件能够决定用户可以执行的操作。对于在宿主创建的应用程序域中运行的代码,宿主对两种安全机制都具有高度的控制。
当管理员和宿主使用代码访问安全机制时,无论是哪个用户在执行代码,都将根据代码本身的特性来确定代码可执行的操作。代码特性称作证据,它可以包括下载代码的网站或区域,或发布代码的供应商的数字签名。
当加载并运行代码时,代码访问安全机制会将此证据映射到一组权限。这些权限定义代码可以执行的特定操作。管理员或宿主会将特定的证据映射到向代码授予的权限。此映射称作安全策略。例如,管理员可能会创建一种安全策略,以便向下载自 Intranet 的代码授予一组较高的权限(如访问文件系统),而向下载自 Internet 的代码授予一组较低的权限。
宿主对应用程序域设置的安全策略称为应用程序域安全策略。管理员也会在企业、计算机和用户级别定义一些策略,以确定向代码授予的全部权限,这些策略和应用程序域安全策略之间存在相交的情况。请注意,应用程序域策略只能限制更高级策略(企业、计算机或用户)所授予的权限集。
宿主可通过对 System.AppDomain 类调用 AppDomain.SetAppDomainPolicy 方法来设置应用程序域级别的策略。宿主只有在被授予了 SecurityPermission 来控制证据时才能设置应用程序域级别的策略。