如何:配置包含列表安全性 (2007 System)

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

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

如果有管理员权限,可以通过将信任决定保存到包含列表中来配置 ClickOnce 信任提示,以控制是否允许最终用户选择安装 Visual Studio Tools for Office 解决方案。有关包含列表的信息,请参见通过使用包含列表信任 Office 解决方案 (2007 System)

对于位于五个区域每个区域中的解决方案,您可以设置以下选项:

  • 启用 ClickOnce 信任提示密钥和包含列表。可以允许最终用户向用任何证书签名的 Office 解决方案授予信任。

  • 限制 ClickOnce 信任提示密钥和包含列表。可以允许最终用户安装用标识发布者的证书(但不是已信任的证书)签名的 Office 解决方案。

  • 禁用 ClickOnce 信任提示密钥和包含列表。可以防止最终用户安装未用显式信任的证书签名的 Office 解决方案。

启用包含列表

如果想要向最终用户呈现安装和运行来自某个区域的任何 Visual Studio Tools for Office 解决方案的选项,请为该区域启用包含列表。

使用注册表编辑器启用包含列表

  1. 打开注册表编辑器:

    1. 单击“开始”,然后单击“运行”。

    2. 在“打开”框中,键入 regedt32.exe,然后单击“确定”。

  2. 查找以下注册表项:

    \HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel

    如果该项不存在,请创建它。

  3. 以“字符串值”的形式添加具有关联值的以下子项(如果这些子项尚不存在)。

    字符串值子项

    Value

    Internet

    AuthenticodeRequired

    UntrustedSites

    Disabled

    MyComputer

    Enabled

    LocalIntranet

    Enabled

    TrustedSites

    Enabled

    默认情况下,Internet 的值为 AuthenticodeRequired,并且 UntrustedSites 的值为 Disabled。

以编程方式启用包含列表

  1. 在 Visual Studio 中创建一个 Visual Basic 或 Visual C# 控制台应用程序。

  2. 打开 Program.vb 或 Program.cs 文件进行编辑,并添加以下代码。

    Dim key As Microsoft.Win32.RegistryKey
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel")
    key.SetValue("MyComputer", "Enabled")
    key.SetValue("LocalIntranet", "Enabled")
    key.SetValue("Internet", "AuthenticodeRequired")
    key.SetValue("TrustedSites", "Enabled")
    key.SetValue("UntrustedSites", "Disabled")
    key.Close()
    
    Microsoft.Win32.RegistryKey key;
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\MICROSOFT\\.NETFramework\\Security\\TrustManager\\PromptingLevel");
    key.SetValue("MyComputer", "Enabled");
    key.SetValue("LocalIntranet", "Enabled");
    key.SetValue("Internet", "AuthenticodeRequired");
    key.SetValue("TrustedSites", "Enabled");
    key.SetValue("UntrustedSites", "Disabled");
    key.Close();
    
  3. 生成并运行应用程序。

限制包含列表

对包含列表进行限制,这样,在提示用户做出信任决定之前,必须用具有已知标识的 Authenticode 证书对解决方案进行签名。

限制包含列表

  1. 打开注册表编辑器:

    1. 单击“开始”,然后单击“运行”。

    2. 在“打开”框中,键入 regedt32.exe,然后单击“确定”。

  2. 查找以下注册表项:

    \HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel

    如果该项不存在,请创建它。

  3. 以“字符串值”的形式添加具有关联值的以下子项(如果这些子项尚不存在)。

    字符串值子项

    Value

    UntrustedSites

    已禁用

    Internet

    AuthenticodeRequired

    MyComputer

    AuthenticodeRequired

    LocalIntranet

    AuthenticodeRequired

    TrustedSites

    AuthenticodeRequired

    默认情况下,Internet 的值为 AuthenticodeRequired,并且 UntrustedSites 的值为 Disabled。

以编程方式限制包含列表

  1. 在 Visual Studio 中创建一个 Visual Basic 或 Visual C# 控制台应用程序。

  2. 打开 Program.vb 或 Program.cs 文件进行编辑,并添加以下代码。

    Dim key As Microsoft.Win32.RegistryKey
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel")
    key.SetValue("MyComputer", "AuthenticodeRequired")
    key.SetValue("LocalIntranet", "AuthenticodeRequired")
    key.SetValue("Internet", "AuthenticodeRequired")
    key.SetValue("TrustedSites", "AuthenticodeRequired")
    key.SetValue("UntrustedSites", "Disabled")
    key.Close()
    
    Microsoft.Win32.RegistryKey key;
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\MICROSOFT\\.NETFramework\\Security\\TrustManager\\PromptingLevel");
    key.SetValue("MyComputer", "AuthenticodeRequired");
    key.SetValue("LocalIntranet", "AuthenticodeRequired");
    key.SetValue("Internet", "AuthenticodeRequired");
    key.SetValue("TrustedSites", "AuthenticodeRequired");
    key.SetValue("UntrustedSites", "Disabled");
    key.Close();
    
  3. 生成并运行应用程序。

禁用包含列表

您可以禁用包含列表,以使最终用户只能安装用受信任的已知证书签名的解决方案。

禁用包含列表

  1. 打开注册表编辑器:

    1. 单击“开始”,然后单击“运行”。

    2. 在“打开”框中,键入 regedt32.exe,然后单击“确定”。

  2. 如果以下注册表项尚不存在,请创建该注册表项:

    \HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel

  3. 以“字符串值”的形式添加具有关联值的以下子项(如果这些子项尚不存在)。

    字符串值子项

    UntrustedSites

    已禁用

    Internet

    Disabled

    MyComputer

    Disabled

    LocalIntranet

    Disabled

    TrustedSites

    Disabled

以编程方式禁用包含列表

  1. 在 Visual Studio 中创建一个 Visual Basic 或 Visual C# 控制台应用程序。

  2. 打开 Program.vb 或 Program.cs 文件进行编辑,并添加以下代码。

    Dim key As Microsoft.Win32.RegistryKey
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel")
    key.SetValue("MyComputer", "Disabled")
    key.SetValue("LocalIntranet", "Disabled")
    key.SetValue("Internet", "Disabled")
    key.SetValue("TrustedSites", "Disabled")
    key.SetValue("UntrustedSites", "Disabled")
    key.Close()
    
    Microsoft.Win32.RegistryKey key;
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\MICROSOFT\\.NETFramework\\Security\\TrustManager\\PromptingLevel");
    key.SetValue("MyComputer", "Disabled");
    key.SetValue("LocalIntranet", "Disabled");
    key.SetValue("Internet", "Disabled");
    key.SetValue("TrustedSites", "Disabled");
    key.SetValue("UntrustedSites", "Disabled");
    key.Close();
    
  3. 生成并运行应用程序。

请参见

任务

如何:添加或移除包含列表项 (2007 System)

概念

通过使用包含列表信任 Office 解决方案 (2007 System)

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