如何:使用 Caspol.exe 分析程序集权限的问题

更新:2007 年 11 月

您可以使用代码访问安全策略工具 (Caspol.exe) 来解决可能会导致程序集不运行、访问受保护资源或在不应运行时运行的问题。

分析不运行的程序集的问题

  1. 使用 –all–resolveperm 选项确定策略授予程序集的权限:

    caspol –all –resolvepermassembly-file

    通过检查在 SecurityPermission 类中是否设置了执行标志,来确定程序集是否具有执行权限。如果程序集具有执行权限,则安全权限集将是无限制的;否则标志属性将包括执行标志。

    如果程序集必须访问受保护的资源(例如,访问磁盘、创建窗口、写入注册表等),则检查是否设置了适当的权限。

  2. 因为由企业、计算机和用户策略级别授予的权限是交叉的,所以必须在所有级别为接收权限的程序集设置权限。如果该程序集具有的权限不足,则检查在每一策略级别授予该程序集的权限:

    caspol –enterprise –resolvepermassembly-file

    caspol –machine –resolvepermassembly-file

    caspol –user –resolvepermassembly-file

  3. 如果程序集是其成员条件受到过多限制的代码组的一部分,或是其关联权限集不包含该程序集执行功能所需权限的代码组的一部分,则该程序集不能正确执行。如果授予代码的权限不足够,则您可以创建新代码组,该代码组授予该程序集所需权限。

    您还可以修改关联的权限集或修改现有代码组之一的成员条件,以便该程序集接收适当的权限。有关如何执行此操作的更多信息,请参见如何:使用 Caspol.exe 更改代码组

分析访问受保护的资源或在不应运行时运行的程序集

  • 如果一个程序集在不应运行时运行,或者如果一个程序集访问了不应访问的资源(例如要求创建对话框的资源),则该程序集可能已被授予了过多的权限。使用 –resolveperm 选项确定已向程序集授予了哪些权限。然后,使用 –resolvegroups 选项确定它属于哪些代码组。或者更改成员条件,或者更改关联的代码组的关联的权限集,以限制授予该程序集的权限。

请参见

概念

安全策略模型

参考

代码访问安全策略工具 (Caspol.exe)

其他资源

使用代码访问安全策略工具 (Caspol.exe) 配置安全策略

使用 Caspol.exe 解决安全策略问题