Dot-Net

受密碼保護的 .NET ClickOnce 部署?

  • May 26, 2010

如何使用密碼保護 ClickOnce 部署的應用程序?我是否必須更改 Web 的 IIS 設置,還是有辦法以程式方式進行?我正在使用 Visual Studio 2005 (.NET 2.0)。

如果我必須使用 Web 憑據,是否還可以自動更新應用程序?

如果您能提供一些範常式式碼或管理 IIS 的詳細說明,那就太好了。

謝謝!

我自己在這篇 MSDN 文章中找到了一個可能的解決方案:ClickOnce 部署和安全性

ASP.NET 基於表單的身份驗證

如果要控制每個使用者可以訪問哪些部署,則不應啟用對部署在 Web 伺服器上的 ClickOnce 應用程序的**匿名訪問。**相反,您將允許使用者基於使用者身份訪問您已安裝的部署(使用 Windows NT 身份驗證)。

如果您部署到沒有 Windows NT 身份驗證的環境,解決方案可能是嘗試使用ASP.NET 基於表單的身份驗證來對使用者進行身份驗證。但是,ClickOnce 不支持基於表單的身份驗證,因為它使用持久性 cookie。這些存在安全風險,因為它們駐留在 Internet Explorer 記憶體中並且可能被黑客入侵。因此,如果您正在部署 ClickOnce 應用程序,則不支持除 Windows NT 身份驗證之外的任何身份驗證方案。

傳遞參數

如果您必須將參數傳遞到 ClickOnce 應用程序,則會出現額外的安全考慮。ClickOnce 使開發人員能夠向通過 Web 部署的應用程序提供查詢字元串。查詢字元串在用於啟動應用程序的 URL 末尾採用一系列名稱-值對的形式:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

預設情況下,查詢字元串參數被禁用。要啟用它們,必須在應用程序的部署清單中設置屬性 trustUrlParameters。可以從 Visual Studio 和 MageUI.exe 設置此值。有關如何啟用傳遞查詢字元串的詳細步驟,請參閱如何:在 ClickOnce 應用程序中檢索查詢字元串資訊。

如果不檢查參數以確保它們是安全的,則永遠不應將通過查詢字元串檢索到的參數傳遞給數據庫或命令行。不安全參數是包含數據庫或命令行轉義字元的參數,這些字元可能允許惡意使用者操縱您的應用程序執行任意命令。

注意:查詢字元串參數是在啟動時將參數傳遞給 ClickOnce 應用程序的唯一方法。您不能從命令行將參數傳遞給 ClickOnce 應用程序。

引用自:https://stackoverflow.com/questions/195454