如何:将权限授予共享位置中的文档和工作簿 (2003 System)

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Microsoft Office 2003

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

如果 Microsoft Office 2003 文档所在的位置(例如,许多用户 -- 可能包括恶意用户 -- 都可以写入内容的 SharePoint 站点或文件共享)不安全,或者如果您不确定有哪些用户具有上载内容的权限,您可以只将权限授予该位置的文档或工作簿,而不是授予所有内容。通过使用 Office 文档成员条件并修改安全策略以在运行解决方案的计算机上检查此条件可以完成此项操作。有关在最终用户计算机上设置安全策略的更多信息,请参见 部署安全策略

使用 Office 文档成员条件时,只信任 Office 文档;程序集和可执行文件不被授予从共享中运行的权限。

可以使用 Visual Studio 命令行工具或 .NET Framework 2.0 配置工具创建自定义代码组。下面分别介绍这两种方法。但是,Visual Studio 2008 中未附带 .NET Framework 2.0 配置工具。您可以从 Microsoft 下载中心下载包含该工具的 .NET Framework 2.0 SDK。有关示例,请参见 .NET Framework 2.0 Software Development Kit (SDK) (x86)(Microsoft .NET Framework 2.0 软件开发工具包 (SDK) (x86))。

使用 Visual Studio 命令行工具创建自定义代码组

使用命令行工具创建自定义代码组

  1. 打开 Visual Studio 命令提示符。如果计算机上没有安装 Visual Studio,请打开 Microsoft Windows 命令提示符,并转到您正在使用的 Framework 版本的 Microsoft .NET Framework 目录。例如:

    %systemroot%\Microsoft.NET\Framework\v2.0.50727
    
  2. 键入如下命令,并用适用于您的环境的相应内容替换示例位置、名称和描述:

    gacutil -i "C:\Program Files\Microsoft 
    Office\Office11\Addins\Msosec.dll"
    
    caspol -m -ag LocalIntranet_Zone -url \\ServerName\FolderName\* 
    Nothing -n "My Data Folder" -d "Intermediate group for my documents"
    
    caspol -m -ag "My Data Folder" -custom "C:\Program Files\Microsoft 
    Office\Office11\Addins\Msosec.xml" FullTrust -n "My Data Documents" 
    -d "Grants FullTrust to all documents in my data folder"
    
    9w6bd8f1.alert_note(zh-cn,VS.90).gif提示:

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

使用 .NET Framework 配置工具创建自定义代码组

必须从 Microsoft 下载中心下载和安装 .NET Framework 2.0 软件开发工具包 (SDK),然后才能使用 .NET Framework 2.0 配置工具。

在使用 .NET Framework 2.0 配置工具时,请遵循下列基本步骤:

  • 将 Msosec.dll 添加到全局程序集缓存 (GAC) 中。Msosec.dll 是实现 Microsoft.Office.Security.Policy.OfficeDocumentMembershipCondition 的程序集,用于标识文档和工作簿。可在 Office 安装位置下的 ADDINS 文件夹(默认情况下为 \Program Files\Microsoft Office\OFFICE11\ADDINS)中找到 Msosec.dll。

  • 创建一个对服务器或特定文件夹具有受限制权限(例如,“Nothing”或“LocalIntranet_Zone”权限)的代码组。

  • 在第一个代码组下方创建另一个授予 Office 文档完全信任的代码组。

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

    如果在策略中使用 Msosec,会对计算机上所有托管代码的性能产生不利影响。建议在不必要的情况下,不要将 Msosec 添加到服务器或其他计算机中。

将 Msosec.dll 添加到程序集缓存中

  1. 作为管理员登录到计算机。

  2. 在“控制面板”中打开“管理工具”,然后运行“Microsoft .NET Framework 2.0 配置”。

  3. 在“控制台根节点”节点之下展开“.NET Framework 2.0 配置”,再展开“我的电脑”。

  4. 右击“程序集缓存”,再单击“添加”。

  5. 定位到 Office 安装文件夹中的 Msosec.dll。例如:

    C:\Program Files\Microsoft Office\Office11\Addins\Msosec.dll

  6. 选择 Msosec.dll,然后单击“打开”,将该文件添加到程序集缓存中。

创建对服务器或文件夹具有受限制权限的代码组

  1. 在“计算机”节点之下展开“代码组”,再展开“All_Code”。

  2. 右击“LocalIntranet_Zone”,再单击“新建”。

    此步骤假定该服务器位于“本地 Intranet”区域中。如果它已被添加到 Internet 资源管理器中的“受信任站点”区域,则右击 Trusted_Zone。

  3. 为代码组命名。对于此示例,使用 Customer Data Folder。

    此代码组不授予该文件夹任何权限;它只作为下一个代码组的容器。

  4. 单击“下一步”。

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

  6. 在“URL”文本框中,键入指向共享文件夹的路径。

    末尾处的星号很重要,因为它将权限应用于此文件夹中的所有文件以及子文件夹。例如:

    \\ServerName\ShareName\*

  7. 单击“下一步”。

  8. 在“使用现有权限设置”列表中选择“Nothing”。

    默认值是“FullTrust”。必须将此值更改为“Nothing”,以防止为指定位置的所有文件授予完全权限。

  9. 单击“下一步”,然后单击“完成”。

创建授予 Office 文档完全信任的代码组

  1. 右击新代码组(在此示例中名为“Customer Data Folder”),再单击“新建”。

  2. 为代码组命名。对于此示例,使用 Customer Data Documents。

  3. 单击“下一步”。

  4. 在“选择此代码组的条件类型”列表中选择“(自定义)”。

  5. 单击“导入”,然后定位至 Office 安装文件夹中的 Msosec.xml。例如:

    C:\Program Files\Microsoft Office\Office11\Addins\Msosec.xml

  6. 选择 Msosec.xml,然后单击“打开”,导入该 XML 自定义代码条件。

  7. 单击“下一步”。

  8. 在“使用现有权限设置”列表中选择“FullTrust”。

  9. 单击“下一步”,然后单击“完成”。

有关授予信任的更多信息,请参见 使用 .NET Framework 配置工具 (Mscorcfg.msc) 配置安全策略使用代码访问安全策略工具 (Caspol.exe) 配置安全策略

请参见

任务

如何:向策略程序集列表添加程序集

如何:使用 Caspol.exe 向安全策略添加程序集

概念

安全部署 (2003 System)

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

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

其他资源

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