配置 ClickOnce 信任提示行为
可以配置 ClickOnce 信任提示,以控制终端用户是否可以选择安装 ClickOnce 应用程序,例如 Windows 窗体应用程序、Windows Presentation Foundation 应用程序、控制台应用程序、WPF 浏览器应用程序以及 Office 解决方案。 通过在每个最终用户的计算机上设置注册表项来配置信任提示。
下表显示了可应用于这五个区域(Internet、UntrustedSites、MyComputer、LocalIntranet 和 TrustedSites)的每个区域的配置选项。
选项 | 注册表设置值 | 说明 |
---|---|---|
启用信任提示。 | Enabled |
将显示 ClickOnce 信任提示,以便最终用户可授予对 ClickOnce 应用程序的信任。 |
限制信任提示。 | AuthenticodeRequired |
只有当使用标识发布者的证书为 ClickOnce 应用程序签名时,才会显示 ClickOnce 信任提示。 否则,不会安装 ClickOnce 应用程序。 |
禁用信任提示。 | Disabled |
未显示 ClickOnce 信任提示。 将仅安装使用显式受信任的证书签名的 ClickOnce 应用程序。 |
下表显示了每个区域的默认行为。 “应用程序”列是指 Windows 窗体应用程序、Windows Presentation Foundation 应用程序、WPF 浏览器应用程序和控制台应用程序。
区域 | 应用程序 | Office 解决方案 |
---|---|---|
MyComputer |
Enabled |
Enabled |
LocalIntranet |
Enabled |
Enabled |
TrustedSites |
Enabled |
Enabled |
Internet |
Enabled |
AuthenticodeRequired |
UntrustedSites |
Disabled |
Disabled |
可通过启用、限制或禁用 ClickOnce 信任提示来替代这些设置。
启用 ClickOnce 信任提示
当想向最终用户显示安装和运行来自该区域的任何 ClickOnce 应用程序时,请为区域启用信任提示。
使用注册表编辑器启用 ClickOnce 信任提示
打开注册表编辑器:
单击 “启动” ,再单击 “运行” 。
在“打开”框中键入
regedit
,然后单击“确定” 。
查找以下注册表项:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果该键不存在,请创建它。
将以下子项添加为 字符串值(如果它们尚不存在),下表中所示的关联值。
字符串值子项 值 Internet
Enabled
UntrustedSites
Disabled
MyComputer
Enabled
LocalIntranet
Enabled
TrustedSites
Enabled
对于Office 解决方案,
Internet
具有默认值AuthenticodeRequired
,而UntrustedSites
具有默认值Disabled
。 对于所有其他解决方案,Internet
具有默认值Enabled
。
以编程的方式启用 ClickOnce 信任提示
在 Visual Studio 中创建 Visual Basic 或 Visual C# 控制台应用程序。
打开“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();
生成并运行应用程序。
限制 ClickOnce 信任提示
限制信任提示,确保在提示用户做出信任决策前必须使用具有已知标识的验证码证书对解决方案进行签名。
使用注册表编辑器限制 ClickOnce 信任提示
打开注册表编辑器:
单击 “启动” ,再单击 “运行” 。
在“打开”框中键入
regedit
,然后单击“确定” 。
查找以下注册表项:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果该键不存在,请创建它。
将以下子项添加为 字符串值(如果它们尚不存在),下表中所示的关联值。
字符串值子项 值 UntrustedSites
Disabled
Internet
AuthenticodeRequired
MyComputer
AuthenticodeRequired
LocalIntranet
AuthenticodeRequired
TrustedSites
AuthenticodeRequired
以编程的方式限制 ClickOnce 信任提示
在 Visual Studio 中创建 Visual Basic 或 Visual C# 控制台应用程序。
打开“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();
生成并运行应用程序。
禁用 ClickOnce 信任提示
可以禁用信任提示,以便没有为最终用户提供安装在其安全策略中尚未信任的解决方案的选项。
使用注册表编辑器禁用 ClickOnce 信任提示
打开注册表编辑器:
单击 “启动” ,再单击 “运行” 。
在“打开”框中键入
regedit
,然后单击“确定” 。
查找以下注册表项:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果该键不存在,请创建它。
将以下子项添加为 字符串值(如果它们尚不存在),下表中所示的关联值。
字符串值子项 值 UntrustedSites
Disabled
Internet
Disabled
MyComputer
Disabled
LocalIntranet
Disabled
TrustedSites
Disabled
以编程的方式禁用 ClickOnce 信任提示
在 Visual Studio 中创建 Visual Basic 或 Visual C# 控制台应用程序。
打开“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();
生成并运行应用程序。