zoukankan      html  css  js  c++  java
  • 如何:配置 ClickOnce 信任提示行为

    转载链接:https://technet.microsoft.com/zh-cn/magazine/ee308453

    可以配置 ClickOnce 信任提示以控制是否允许最终用户选择安装 ClickOnce 应用程序,如 Windows Forms 应用程序、Windows Presentation Foundation 应用程序、控制台应用程序、WPF 浏览器应用程序和 Office 解决方案。    可以通过在每个最终用户的计算机上设置注册表项来配置信任提示。   

    下表显示了可应用于五个区域(即 Internet、UntrustedSites、MyComputer、LocalIntranet 和 TrustedSites)中的每个区域的配置选项。

    选项

    注册表设置值

    说明

    启用信任提示。

    Enabled

    显示 ClickOnce 信任提示以便最终用户能够向 ClickOnce 应用程序授予信任。

    限制信任提示。

    AuthenticodeRequired

    ClickOnce 信任提示仅在已用标识发行者的证书对 ClickOnce 应用程序进行签名的情况下显示。

    禁用信任提示。

    禁用

    对于未用显式信任证书进行签名的任何 ClickOnce 应用程序,不显示 ClickOnce 信任提示。

    下表显示了每个区域的默认行为。    “应用程序”列指的是 Windows Forms 应用程序、Windows Presentation Foundation 应用程序、WPF 浏览器应用程序和控制台应用程序。   

    区域

    应用程序

    Office 解决方案

    MyComputer

    Enabled

    Enabled

    LocalIntranet

    Enabled

    Enabled

    TrustedSites

    Enabled

    Enabled

    Internet

    Enabled

    AuthenticodeRequired

    UntrustedSites

    禁用

    禁用

    通过启用、限制或禁用 ClickOnce 信任提示,可以重写这些设置。

    启用 ClickOnce 信任提示

    如果想要向最终用户呈现选项,使他们可以选择安装和运行来自某个区域的任何 ClickOnce 应用程序,请为该区域启用信任提示。

    使用注册表编辑器启用 ClickOnce 信任提示

    1. 打开注册表编辑器:

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

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

    2. 查找以下注册表项:

      HKEY_LOCAL_MACHINESOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel

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

    3. 按下表所示,以“字符串值”的形式添加以下子项(如果这些子项尚不存在)及关联的值。

      字符串值子项

      Internet

      Enabled

      UntrustedSites

      禁用

      MyComputer

      Enabled

      LocalIntranet

      Enabled

      TrustedSites

      Enabled

      对于 Office 解决方案,Internet 的默认值为 AuthenticodeRequired,而 UntrustedSites 的默认值为 Disabled。    对于所有其他应用程序,Internet 的默认值为Enabled。   

    以编程方式启用 ClickOnce 信任提示

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

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

      Dim key As Microsoft.Win32.RegistryKey
      key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel")
      key.SetValue("MyComputer", "Enabled")
      key.SetValue("LocalIntranet", "Enabled")
      key.SetValue("Internet", "Enabled")
      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. 生成并运行应用程序。

    限制 ClickOnce 信任提示

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

    使用注册表编辑器限制 ClickOnce 信任提示

    1. 打开注册表编辑器:

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

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

    2. 查找以下注册表项:

      HKEY_LOCAL_MACHINESOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel

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

    3. 按下表所示,以“字符串值”的形式添加以下子项(如果这些子项尚不存在)及关联的值。

      字符串值子项

      UntrustedSites

      禁用

      Internet

      AuthenticodeRequired

      MyComputer

      AuthenticodeRequired

      LocalIntranet

      AuthenticodeRequired

      TrustedSites

      AuthenticodeRequired

    以编程方式限制 ClickOnce 信任提示

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

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

      Dim key As Microsoft.Win32.RegistryKey
      key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel")
      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. 生成并运行应用程序。

    禁用 ClickOnce 信任提示

    可以禁用信任提示,使最终用户无法选择安装其安全策略已不信任的解决方案。

    使用注册表编辑器禁用 ClickOnce 信任提示

    1. 打开注册表编辑器:

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

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

    2. 查找以下注册表项:

      HKEY_LOCAL_MACHINESOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel

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

    3. 按下表所示,以“字符串值”的形式添加以下子项(如果这些子项尚不存在)及关联的值。

      字符串值子项

      UntrustedSites

      禁用

      Internet

      禁用

      MyComputer

      禁用

      LocalIntranet

      禁用

      TrustedSites

      禁用

     

    以编程方式禁用 ClickOnce 信任提示

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

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

      Dim key As Microsoft.Win32.RegistryKey
      key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWAREMICROSOFT.NETFrameworkSecurityTrustManagerPromptingLevel")
      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. 生成并运行应用程序。

  • 相关阅读:
    面试题32
    面试题28. 对称的二叉树
    面试题55
    面试题04. 二维数组中的查找
    面试题58
    面试题57. 和为s的两个数字
    如果Python对于磁盘没有写入权限,还会运行吗?
    Python中的import语句
    Python决定一个变量时局部的,还是全局的,是在编译期
    Python中的Comprehensions和Generations
  • 原文地址:https://www.cnblogs.com/klcf0220/p/5776865.html
Copyright © 2011-2022 走看看