Share via


演练:授予和移除对 Office 解决方案的权限 (2003 System)

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Microsoft Office 2003

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

此演练演示 Visual Studio Tools for Office 安全性方面的基本操作。

本演练阐释以下任务:

  • 移除默认的安全设置。

  • 添加新的权限集。

先决条件

您需要以下组件来完成本演练:

  • Visual Studio Tools for Office(Visual Studio 2008 专业版和 Visual Studio Team System 的可选组件)。

  • Microsoft Office Excel 2003。

创建项目

在此步骤中,创建一个 Excel 工作簿项目。

创建新项目

  • 使用适用于 Office 2003 的项目模板,创建一个名为“My Security Test”的 Excel 工作簿项目。

    本演练中的步骤假设您将项目保存到 C:\Walkthroughs。在向导中,选择“创建新文档”。有关更多信息,请参见 如何:创建 Visual Studio Tools for Office 项目

Visual Studio 在设计器中打开新的 Excel 工作簿,并将“My Security Test”项目添加到“解决方案资源管理器”中。

添加工作表后台代码

项目需要一些代码,您可以运行这些代码来测试是否正确设置了安全性。对于此演练,向工作表的初始化事件添加一个消息框。

将消息框添加到初始化事件

  1. 验证“My Security Test.xls”工作簿是否已在 Visual Studio 设计器中打开,并显示 Sheet1。

  2. 在“解决方案资源管理器”中右击“Sheet1.vb”或“Sheet1.cs”,再单击快捷菜单上的“查看代码”。

  3. 在 Sheet1 类中向 Startup 方法添加以下代码,以在初始化期间显示消息框。

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("Security settings are correct.")
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("Security settings are correct.");
    }
    
  4. 按 F5 运行项目。

    Excel 启动并出现消息框。

  5. 关闭消息框。

  6. 关闭 Excel。

  7. 在 Visual Studio 设计器中,查找并选择“My Security Test.xls”的选项卡。

  8. 在 Visual Studio 设计器中关闭“My Security Test.xls”(Excel 工作表设计图面)。

    在更改安全策略之前必须关闭所有打开的 Excel 实例。

生成 Excel 工作簿项目时,向导会在用户级别向安全策略中添加新的安全代码组和子代码组。

接下来,移除向导创建的代码组。

移除默认的代码组

查找并移除创建的默认代码组。

移除代码组

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

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

    Visual Studio 2008 中未附带“Microsoft .NET Framework 2.0 配置”工具。您可以将其作为 .NET Framework 2.0 软件开发工具包(可在 Microsoft 下载中心找到)的一部分进行安装。有关示例,请参见 .NET Framework 2.0 Software Development Kit (SDK) (x86)(Microsoft .NET Framework 2.0 软件开发工具包 (SDK) (x86))。

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

    每个已创建的项目均有一个 GUID。展开每个 GUID,查看关联文档的路径。

  4. 右击“C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.xls”代码组的 GUID,然后在快捷菜单上单击“删除”。

    出现一个对话框,询问是否确实要删除此代码组。

  5. 单击“是”。

  6. 返回 Visual Studio,然后按 F5 运行“My Security Test”项目。

    出现一条错误信息,说明当前 .NET 安全策略不允许运行自定义项。

  7. 单击“确定”。

  8. 关闭 Excel。

如果程序集在 Microsoft .NET Framework 安全策略中没有显式权限,则无法运行该程序集。

接下来,通过使用强名称(而不是 URL)作为证据向程序集授予权限。

为程序集指定强名称

用作证据时,强名称通常比 URL 更加安全。您可以在 Visual Studio 中创建一个强名称并将其分配给程序集。

创建强名称

  1. 在 Visual Studio 中的“项目”菜单中单击“My Security Test 属性”。

  2. 单击“签名”选项卡。

  3. 选择“为程序集签名”。

  4. 在“选择强名称密钥文件列表”中,选择“新建”。

  5. 在“创建强名称密钥”对话框中的“密钥文件名称”框中键入“SecurityTestKey”。

  6. 清除“使用密码保护密钥文件”复选框。

  7. 单击“确定”。

    在“解决方案资源管理器”中出现密钥文件“SecurityTestKey.snk”。

  8. 在“生成”菜单上单击“生成解决方案”,根据强名称密钥对生成程序集。

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

保证密钥文件的安全至关重要。通常应用密码对其加以保护,并且还应该采取措施防止未经授权的人员获取对它的访问权。密钥文件是多种信任决策的基础。只应将密钥文件给予值得信任和可靠的人。如果恶意用户获得了您的密钥文件并发现了密码,则此人可冒充您创建恶意程序集。

根据强名称授权信任

现在添加新的代码组,以根据强名称向程序集授权完全信任。

根据强名称授权信任

  1. 再次打开“Microsoft .NET Framework 2.0 配置”。

  2. 右击“VSTOProjects”节点,再在快捷菜单上单击“新建”。

  3. 键入新代码组的名称“Security Test Strong Name”,然后单击“下一步”。

  4. 在“选择此代码组的条件类型”列表中单击“强名称”。

  5. 单击“导入”。

  6. 在 Visual Basic 中,定位到 C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.dll,在 C# 中,定位到 C:\Walkthroughs\My Security Test\My Security Test\bin\debug\My Security Test.dll,然后单击“打开”。

  7. 单击“下一步”。

  8. 单击“下一步”接受“FullTrust”权限设置,再单击“完成”。

  9. 关闭“Microsoft .NET Framework 2.0 配置”。

测试应用程序

现在可以对项目进行测试,以确保打开工作簿时代码会运行。

测试工作簿

  1. 按 F5 运行项目。

  2. 确认出现消息框。

请参见

任务

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

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

概念

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

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

其他资源

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