增加权限
更新:2007 年 11 月
取决于其编写方式,运行需要的权限多于当前策略允许的权限的托管应用程序会引发异常、无法执行或无法正常工作。可以使用权限查看工具 (Permview.exe) 来查看程序集请求的最小权限、请求的可选权限和拒绝的权限,以便比较程序集请求的权限与其实际收到的权限。注意,该工具仅显示由应用程序使用声明式语法显式请求的权限。有此信息后,可以增加程序集将收到的权限,方法是创建新的自定义代码组并将其与一个新的自定义权限集相关联,该自定义权限集包含应用程序正常运行需要的所有权限。但是,仅当您信任应用程序的源时才可以增加权限,并且只能根据相当可靠的证据信任。(在多数情况下,管理员会有若干自定义代码组,可以使用这些代码组对若干需要相似权限的应用程序进行分类。)
假定有一个应用程序由同一网络共享中的多个用户经常访问。在非托管上下文中,这种情况通常不会引起执行问题。但是在托管上下文中,因该应用程序是出自本地 Intranet 区域,所以会授予其有限的权限集。例如,可能不允许该应用程序有完全打印权限,这就限制了该应用程序的可用性。可执行以下操作,而不必放宽整个本地 Intranet 区域的设置:
使用权限查看工具 (Permview.exe) 来查看您要增加其权限的程序集所请求的最小权限。应用程序至少需要拥有这些权限才能够运行。
标识程序集的唯一特性。该特性可以包含程序集的强名称、公钥、哈希值和唯一自定义属性。如果应用程序出自受信任的服务器,则该位置也可用于标识应用程序。记住,可信任所有具有该特性的代码。
创建一个需要成员的唯一标识符的新代码组。使用 .NET Framework 配置工具 (Mscorcfg.msc) 或代码访问安全策略工具 (Caspol.exe) 来创建代码组。
使用 .NET Framework 配置工具或代码访问安全策略工具创建一个新权限集,该权限集包含程序集要运行至少需要的所有权限。
使用 .NET Framework 配置工具或代码访问安全策略工具将新权限集与新代码组关联。
完成这些步骤之后,该应用程序将运行,并将获得正常工作所需要的充分权限。其他受信任程度较低的应用程序将不会接收额外的权限;这有助于保护您的系统免受恶意代码的侵害。有关使用安全工具执行特定任务的信息,请参见配置安全策略。