如何:使用 Caspol.exe 向安全策略添加程序集
更新:2007 年 11 月
对于实现自定义权限的程序集或实现在 .NET Framework 中不包括的任何其他自定义安全对象的程序集,必须将它添加到完全信任的程序集列表中。您可以使用代码访问安全策略工具 (Caspol.exe) 执行此操作。每一策略级别都有单独的列表。完全信任的程序集列表为相关的策略级别向其成员授予完全信任。这是令运行库免于执行循环策略解析所必需的。
将实现自定义安全对象的程序集添加到完全信任的程序集列表
在将一个程序集添加到安全策略中之前,必须给它提供一个强名称并将其放置在全局程序集缓存中。有关使用程序集和全局程序集缓存的更多信息,请参见创建和使用具有强名称的程序集。
在命令提示处键入以下命令:
caspol [-enterprise|-machine|-user] –addfulltrust AssemblyFile
在 –addfulltrust 选项前面指定策略级别选项。如果省略该策略级别选项,则 Caspol.exe 列出处于默认策略级别的权限集。对于计算机管理员,默认级别是计算机策略级别;对于其他人员,默认级别是用户策略级别。
以下命令将 MyCustomPermissionSet.exe 添加到用户策略级别的完全信任程序集列表中。
caspol –user –addfulltrust MyCustomPermissionSet.exe
如果添加的程序集依赖其他程序集(即,使用在其他程序集中实现的类型),则必须还将该程序集添加到该列表中。
将一个程序集添加到完全信任的程序集列表并不保证策略系统作为一个整体授予对它的完全信任,而是该程序集只在列出它的策略级别将被授予完全信任。例如,如果将 MyCustomPermission.exe 程序集添加到用户策略级别的完全信任的程序集列表,但 MyCustomPermission.exe 只接收来自计算机策略的执行权限,则 MyCustomPermission.exe 将最终只被授予执行权限。因此需牢记的是,将一个程序集放入完全信任的程序集列表将只有助于避免为在其中列出它的策略级别创建循环策略解析。不保证实现自定义权限的程序集实际接收完全信任授予。