如何:将权限授予文件夹和程序集 (2003 System)

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Microsoft Office 2003

有关更多信息,请参见按应用程序和项目类型提供的功能

下面的过程将为 Visual Studio Tools for Office 解决方案中的程序集或文件夹授予完全信任权限。通常,要为特定程序集授予权限。如果具有多个程序集,而且确信位置是安全的,则可为程序集所在的文件夹授予完全信任权限。如果为文件夹授予信任权限,该文件夹及其子文件夹中的所有程序集也都是受信任的。

在 Office 解决方案中,有三种方式可以向文件夹和程序集授予权限:

  • 使用 Visual Studio 中的“Trust Assemblies Location”属性。(仅在开发时有用。)

    “Trust Assemblies Location”属性只在开发期间起作用;此属性不影响最终用户。由于这个原因,您不能使用此方法进行部署。有关更多信息,请参见 Visual Studio Tools for Office 项目中的属性

  • 使用“Microsoft .NET Framework 2.0 配置”工具。

    此工具为使用安全策略提供了图形用户界面。Visual Studio 2008 中未附带该工具。您可以从 Microsoft 下载中心下载包含该工具的 .NET Framework 2.0 SDK。有关示例,请参见 .NET Framework 2.0 Software Development Kit (SDK) (x86)(Microsoft .NET Framework 2.0 软件开发工具包 (SDK) (x86))。

  • 使用“代码访问安全策略”工具 (Caspol.exe)。

    此工具是用于使用安全策略的命令行界面。

zdc263t0.alert_note(zh-cn,VS.90).gif说明:

以上是出于开发和测试程序集的目的,设置您自己的安全策略的基本步骤。如果您不能确定程序集或目录是安全的,不要使用这些步骤向其授予信任。有关设置安全策略的更多信息,请参见 部署安全策略使用 .NET Framework 配置工具 (Mscorcfg.msc) 配置代码组

使用 Trust Assemblies Location 属性

默认情况下,创建项目时,将基于位置授予完全信任。如果“信任程序集位置”已更改,您可以重新应用默认设置。

向开发计算机上的项目程序集授予完全信任

  1. 在 Visual Studio 中,在“解决方案资源管理器”中选择该项目节点。

  2. 在“属性”窗口中选择“Trust Assemblies Location”。

  3. 将该属性设置为 true。

  4. 在“生成”菜单上,单击“生成解决方案”。

使用 .NET Framework 2.0 配置工具

若要安装此工具,请从 Microsoft 下载中心下载并安装 .NET Framework 2.0 软件开发工具包 (SDK)。

要执行的过程取决于程序集或文件夹位于何处:

  • 在本地计算机上。

  • 在网络中其他计算机(或映射驱动器)上。

向本地计算机上的程序集或文件夹授予完全信任

  1. 在“控制面板”中打开“管理工具”。

  2. 运行“Microsoft .NET Framework 2.0 配置”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    可能有多种名称以“Microsoft .NET Framework”开头的类似工具。确保使用的配置工具与您的运行时的版本相匹配。

  3. 在左侧的树视图中,依次展开“.NET Framework 2.0 配置”、“我的电脑”、“运行时安全策略”、“用户”、“代码组”、“All_Code”,然后展开“VSTOProjects”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    如果之前没有编译过 Visual Studio Tools for Office 项目,则不会有 VSTOProjects 文件夹。可以将新的代码组添加到“All_Code”根节点,或者可以编译 Visual Studio Tools for Office 项目以自动创建 VSTOProjects 文件夹。

    右侧是 VSTOProjects 代码组的说明,其页面底部有一个“任务”区域。

  4. 在“任务”区域中单击“添加子代码组”。

    “创建代码组”向导启动。

  5. 选择“创建新代码组”,然后键入可帮助您识别项目的名称和说明。单击“下一步”。

  6. 在“选择此代码组的条件类型”列表中单击“URL”。

  7. 在“URL”框中键入程序集的完整路径,或者键入项目的 bin 文件夹的路径并在后面添加一个星号(例如,c:\路径\ExcelApplication1.dll 或 c:\路径\ExcelApplication1\bin\*)。

  8. 单击“下一步”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    如果键入 bin 文件夹的路径,则将在您的计算机上对该文件夹及其全部子文件夹下的所有程序集授予完全信任。确保未经授权的人员无法访问完全受信任的文件夹,否则有人可能在该文件夹中放入恶意程序集,并且该程序集将以完全信任权限运行。

    zdc263t0.alert_caution(zh-cn,VS.90).gif警告:

    不要向整个硬盘(如 C:\*)或常规文件夹(如“我的文档”)授予权限,因为您可能会将权限授予来自 Internet 或电子邮件的缓存程序集。仅将权限授予特定的项目文件夹,这些文件夹包含您确信可以安全运行的程序集。

  9. 选择“使用现有权限集”,然后从列表中选择“FullTrust”。

  10. 单击“下一步”。

  11. 单击“完成”。

向网络计算机或映射驱动器上的程序集或文件夹授予完全信任

  1. 在“控制面板”中打开“管理工具”。

  2. 运行“Microsoft .NET Framework 2.0 配置”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    可能有多种名称以“Microsoft .NET Framework”开头的类似工具。确保使用的配置工具与您的运行时的版本相匹配。

  3. 在左侧的树视图中,依次展开“.NET Framework 2.0 配置”、“我的电脑”、“运行时安全策略”、“计算机”、“代码组”、然后展开“All_Code”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    只有管理员才能向网络计算机上的程序集或文件夹授予完全信任,且信任必须在“计算机”级别而不是在“用户”级别授予。

  4. 在“All_Code”下右击“LocalIntranet_Zone”,再单击“新建”。

    此步骤假定所使用的服务器位于“本地 Intranet”区域中。如果它已被添加到 Internet 资源管理器中的“受信任站点”区域,则右击 Trusted_Zone。如果程序集位于映射驱动器上,则必须使用“LocalIntranet_Zone”。

  5. 键入可帮助您识别项目的名称和说明。单击“下一步”。

  6. 在“选择此代码组的条件类型”列表中单击“URL”。

  7. 在“URL”框中键入程序集的完整路径,或者键入项目的 bin 文件夹的路径并在后面添加一个星号(例如,\\服务器名\文件夹名称\ExcelApplication1.dll 或 http://服务器名/文件夹名称/ExcelApplication1/bin/*)。

  8. 单击“下一步”。

    zdc263t0.alert_note(zh-cn,VS.90).gif说明:

    如果键入 bin 文件夹的路径,则将在您的计算机上对该文件夹及其所有子文件夹中的所有程序集授予完全信任。如果不确定这些文件夹是否安全,这样宽松的权限可能会带来安全风险。

  9. 选择“使用现有权限集”,然后从列表中选择“FullTrust”。

  10. 单击“下一步”。

  11. 单击“完成”。

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

也可以使用代码访问安全策略工具 (Caspol.exe) 从命令提示符向文件夹授予完全信任。有关 Caspol.exe 的更多信息,请参见 代码访问安全策略工具 (Caspol.exe)

可以在“用户”级别使用普通用户权限,向本地计算机上的文件夹授予信任。若要向网络位置授予信任,必须具有管理员特权并在“计算机”级别更改安全策略。“计算机”策略级别独立于“用户”策略级别工作,并且“计算机”策略级别不会对 Intranet 区域授予完全信任,即使“用户”策略授予完全信任。这些策略级别必须一致。

zdc263t0.alert_note(zh-cn,VS.90).gif提示:

手动键入命令。将命令复制和粘贴到命令提示符中可能导致“未知选项”错误。

向本地文件夹授予完全信任

  • 在 Visual Studio 命令提示符下键入以下命令。

    caspol -u -ag All_Code -url 
    C:\<FolderName>\<FolderName>\* FullTrust -n "<Name>" -d
    "<Description>"
    

向网络文件夹授予完全信任

  • 在 Visual Studio 命令提示符下键入以下命令。

    caspol -m -ag LocalIntranet_Zone -url 
    \\<ServerName>\<FolderName>\* FullTrust -n "<Name>" -d 
    "<Description>"
    

有关更多信息,请参见 如何:使用 Caspol.exe 添加代码组

zdc263t0.alert_note(zh-cn,VS.90).gif说明:

部署策略之后,受策略更改影响的所有人都必须退出并重新启动解决方案中使用的所有 Office 应用程序,这样对该策略所做的更改才会生效。如果 Microsoft Office Word 是解决方案的一部分,用户还必须退出并重新启动 Microsoft Office Outlook。同时,如果用户在 Internet Explorer 中打开了文档或工作簿,进程仍可能在运行。检查 Windows 任务管理器以确保没有 Office 应用程序的实例。其他承载 Office 应用程序的应用程序也会阻止实施新的权限。当安全策略改变时,用户应当退出所有使用 Office 的应用程序(无论是寄宿的还是独立的)。

请参见

任务

如何:从文件夹和程序集中移除权限 (2003 System)

概念

运行 Office 解决方案的安全要求 (2003 System)

Office 解决方案的安全性最佳做法 (2003 System)

Office 解决方案的特定安全注意事项

代码组

保证应用程序的安全

其他资源

Office 解决方案中的安全性 (2003 System)