如何:設定 ClickOnce 信任提示行為
您可以設定 ClickOnce 信任提示以控制是否向使用者提供安裝 ClickOnce 應用程式的選項,例如 Windows Forms 應用程式、Windows Presentation Foundation 應用程式、主控台應用程式、WPF 瀏覽器應用程式和 Office 方案。 透過在每位使用者的電腦上設定登錄機碼來設定信任提示。
下表顯示可以套用至五個區域的組態選項 (Internet、UntrustedSites、MyComputer、LocalIntranet 和 TrustedSites)。
選項 |
登錄設定值 |
描述 |
---|---|---|
啟用信任提示。 |
Enabled |
顯示 ClickOnce 信任提示,以讓使用者將信任授與 ClickOnce 應用程式。 |
限制信任提示。 |
AuthenticodeRequired |
只有以識別發行者的憑證來簽署 ClickOnce 應用程式時,才會顯示 ClickOnce 信任提示。 |
停用信任提示。 |
Disabled |
對於未明確使用信任憑證簽署的任何 ClickOnce 應用程式,不會顯示 ClickOnce 信任提示。 |
下表顯示每個區域的預設行為。 「應用程式」資料行是指 Windows Forms 應用程式、Windows Presentation Foundation 應用程式、WPF 瀏覽器應用程式和主控台應用程式。
區域 |
應用程式 |
Office 方案 |
---|---|---|
MyComputer |
Enabled |
Enabled |
近端內部網路 |
Enabled |
Enabled |
TrustedSites |
Enabled |
Enabled |
網際網路 |
Enabled |
AuthenticodeRequired |
UntrustedSites |
Disabled |
Disabled |
您可以透過啟用、限制或停用 ClickOnce 信任提示來覆寫這些設定。
啟用 ClickOnce 信任提示
當您希望對使用者顯示安裝和執行來自某區域之任何 ClickOnce 應用程式的選項時,請啟用該區域的信任提示。
若要使用登錄編輯程式啟用 ClickOnce 信任提示
開啟登錄編輯器:
按一下 [開始],再按一下 [執行]。
在 [開啟] 方塊中,輸入 regedit32,然後按下 [確定]。
尋找下列登錄機碼:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果機碼不存在,請加以建立。
請加入下列子機碼做為 [字串值] (如果沒有的話),並且加入下表中的關聯值。
字串值子機碼
值
網際網路
Enabled
UntrustedSites
Disabled
MyComputer
Enabled
近端內部網路
Enabled
TrustedSites
Enabled
對於 Office 方案來說,Internet 的預設值為 AuthenticodeRequired,而 UntrustedSites 的值為 Disabled。 對於所有其他方案來說,Internet 的預設值為 Enabled。
若要以程式設計的方式啟用 ClickOnce 信任提示
在 Visual Studio 中建立 Visual Basic 或 Visual C# 主控台應用程式。
開啟 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", "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();
建置並執行應用程式。
限制 ClickOnce 信任提示
限制信任提示,以在確認方案已用具有已知識別的 Authenticode 憑證來簽署之後,才提示使用者決定是否信任。
若要使用登錄編輯程式限制 ClickOnce 信任提示
開啟登錄編輯器:
按一下 [開始],再按一下 [執行]。
在 [開啟] 方塊中,輸入 regedit,然後按下 [確定]。
尋找下列登錄機碼:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果機碼不存在,請加以建立。
請加入下列子機碼做為 [字串值] (如果沒有的話),並且加入下表中的關聯值。
字串值子機碼
值
UntrustedSites
Disabled
網際網路
AuthenticodeRequired
MyComputer
AuthenticodeRequired
近端內部網路
AuthenticodeRequired
TrustedSites
AuthenticodeRequired
若要以程式設計的方式限制 ClickOnce 信任提示
在 Visual Studio 中建立 Visual Basic 或 Visual C# 主控台應用程式。
開啟 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();
建置並執行應用程式。
停用 ClickOnce 信任提示
您可以停用信任提示,以便不向使用者提供安裝尚未在安全性原則中受信任之方案的選項。
若要使用登錄編輯程式停用 ClickOnce 信任提示
開啟登錄編輯器:
按一下 [開始],再按一下 [執行]。
在 [開啟] 方塊中,輸入 regedit,然後按下 [確定]。
尋找下列登錄機碼:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel
如果機碼不存在,請加以建立。
請加入下列子機碼做為 [字串值] (如果沒有的話),並且加入下表中的關聯值。
字串值子機碼
值
UntrustedSites
Disabled
網際網路
Disabled
MyComputer
Disabled
近端內部網路
Disabled
TrustedSites
Disabled
若要以程式設計的方式停用 ClickOnce 信任提示
在 Visual Studio 中建立 Visual Basic 或 Visual C# 主控台應用程式。
開啟 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();
建置並執行應用程式。
請參閱
工作
如何:新增信任發行者至 ClickOnce 應用程式的用戶端電腦