配置包含列表安全性

如果你有管理员istrator 权限,则可以配置 ClickOnce 信任提示,通过将信任决策保存到包含列表来控制是否为最终用户提供了安装办公室解决方案的选项。 有关包含列表的信息,请参阅使用包含列表信任办公室解决方案。

适用于: 本主题中的信息适用于文档级项目和 VSTO 外接程序项目。 请参阅办公室应用程序和项目类型提供的功能。

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

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

  • 限制 ClickOnce 信任提示密钥和包含列表。 可以允许最终用户安装使用标识发布者但尚未受信任的证书签名的办公室解决方案。

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

启用包含列表

如果希望最终用户能够看到安装并运行来自该区域的任何办公室解决方案的选项,请为区域启用包含列表。

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

  1. 打开注册表编辑器:

    1. 单击 “启动” ,再单击 “运行”

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

  2. 查找以下注册表项:

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

    如果不存在此项,则创建它。

  3. 将以下子项添加为 字符串值(如果它们尚不存在),其中包含关联的值。

    字符串值子项
    Internet AuthenticodeRequired
    不受信任的网站 已禁用
    MyComputer Enabled
    LocalIntranet 已启用
    TrustedSites Enabled

    默认情况下,Internet 具有 AuthenticodeRequired而 UntrustedSites 的值为“已禁用”。

以编程方式启用包含列表

  1. 创建 Visual Basic 或 Visual C# 控制台应用程序。

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

    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. 将以下子项添加为 字符串值(如果它们尚不存在),其中包含关联的值。

    字符串值子项
    不受信任的网站 已禁用
    Internet AuthenticodeRequired
    MyComputer AuthenticodeRequired
    LocalIntranet AuthenticodeRequired
    TrustedSites AuthenticodeRequired

    默认情况下,Internet 具有 AuthenticodeRequired而 UntrustedSites 的值为“已禁用”。

以编程方式限制包含列表

  1. 创建 Visual Basic 或 Visual C# 控制台应用程序。

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

    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. 将以下子项添加为 字符串值(如果它们尚不存在),其中包含关联的值。

    字符串值子项
    不受信任的网站 已禁用
    Internet 已禁用
    MyComputer 已禁用
    LocalIntranet 已禁用
    TrustedSites 已禁用

以编程方式禁用包含列表

  1. 创建 Visual Basic 或 Visual C# 控制台应用程序。

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

    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. 生成并运行应用程序。