我正在尝试将我的WPF应用程序部署到我们公司网络之外的一些用户。我们的局域网上的一切都运行良好,但是当我打开安全性时,我无法获得更新,因为用户从未被提示输入他们的登录信息?
有没有人知道如何保护我的ClickOnce文件,以便只有我的用户可以访问它?我不被允许在没有安全的情况下放置这个软件。
任何帮助都非常感激。
答案 0 :(得分:0)
无法保护您的文件,因为ClickOnce运行时将盲目地返回到其部署点,并且永远不会保留用户的原始凭据。我已经听说过使用各种技术来解决这个问题的方法,但这需要相当多的工作。
这可能有用www.clickoncerevolution.com。
您也可以考虑使用MSI安装程序,但不会获得自动更新。
玛蒂
答案 1 :(得分:0)
在内部,您可以限制对Web服务器上文件的访问。在外部,你不能轻易做到。
我们通过让客户在运行应用程序时登录来处理此问题,并且我们针对后端服务(在Azure上运行)验证其凭据。因此除非他们可以登录,否则他们无法运行它。
如果您不想这样做,我会与您分享this article。它显示了如何通过拦截对Web服务器的请求并响应来从SQL Server数据库提供ClickOnce文件。如果你使用Web应用程序比我更聪明(请注意,不要高吧),也许你可以弄清楚如何拦截并在那时请求身份验证凭据。
这里是an article from CodeProject,他们会为你要做的事情展示一个解决方案。