Tim*_*Tim 6 deployment passwords clickonce
我的网站上有一个指向 Visual Studio 生成的标准发布页面的链接。我担心的是,如果有人找到该页面的 URL,他们就可以下载我的软件。当然,我可以用密码保护带有链接的页面,但它仍然无法保护下载 URL。有什么方法可以保证上传后的点击次数吗?我环顾四周,似乎我就陷入了这种感觉。
小智 4
公共 URL 是 ClickOnce 部署中的一个安全问题。但是,如果您的 Web 服务器安装了 Windows 和 .NET,则可以解决您的问题。告诉我你有吗?如果你有的话,我将不得不为 Linux Web 服务器想出另一种解决方法。
首先,了解一些有关 ClickOnce 部署的信息。部署应用程序时,服务器上发出的 GET 请求为(假设WebDir是服务器上的发布目录)
G-1。GET /WebDir/setup.exe(初始下载)
G-2。GET /WebDir/MyApp.Application(setup.exe -url 请求)
G-3。GET /WebDir/MyApp.Application(.应用程序部署提供商 URL 请求)
G-4。GET /WebDir/Application Files/MyApp_1_0_0_0/MyApp.exe.manifest(申请清单请求)
G-5。GET /WebDir/Application Files/MyApp_1_0_0_0/MyApp.exe.deploy
和其他 .deploy 文件...(应用程序文件请求)
现在,解决方案是在服务器上拦截这些文件请求。在 IIS 上,您可以附加自定义 HTTPHandler 并处理请求。在 Apache 上,您可以使用 .htaccess 文件将请求重定向到 PHP 代码。除此之外,您还必须uid为从服务器下载的客户端实例生成唯一标识符(可以是您的许可证密钥),并将其放入部署提供程序 URL 查询参数中。
"Application"在您的内部创建一个文件夹WebDir并限制对/WebDir/Application/. 休息一切都可以在里面/WebDir/
因此,您可以在 Windows 计算机上托管的 Apache Web 服务器上执行以下操作:
/WebDir/Download.phpDownload.php,您必须将setup.exe代码(可以在 PHP 中使用readfile())发送给用户。然而,问题是 bootstrapper ( setup.exe) 在安装后将执行 GET 请求 [G-2]。现在不要忘记,您必须验证此文件请求。因此基本上您可以在返回文件之前更改"setup.exe -url"要包含的属性。uid例如:将其更改为/WebDir/uid/MyApp.Application[G-2]。您可以使用MsiStuff.exe更改引导程序的 URL 属性。.htaccess文件将 [G-2] 重写为/WebDir/Handler.php?user=uid. 从Handler.php,您可以检查它是否有效uid。如果它有效,您必须uid在部署提供程序 URL 中包含 ,并在部署清单中包含“依赖程序集路径”,以便在出现升级请求时(它本质上是请求部署清单),您也可以在那里验证用户。添加uid到查询字符串参数。例如:将其更改为/WebDir/MyApp.application?user=uid[G-3]。不要忘记,一旦修改清单,您就必须放弃清单。使用Mage或编写自己的代码来做到这一点。所以最后,服务器上的 GET 请求将是(假设uid=1f3rd)
G-1。GET /WebDir/Download.php
操作:返回setup.exe并更改 -url
G-2。GET /WebDir/Application/setup.exe/1f3rd/MyApp.Application
操作:重定向、验证用户、更改 URL、重新签名并返回文件
G-3。GET /WebDir/Application/setup.exe/MyApp.Application?user=1f3rd
操作:重定向、验证用户并返回文件
G-4。GET /WebDir/Application/1f3rd/Application Files/MyApp_1_0_0_0/MyApp.exe.manifest
行动:重定向、验证用户并返回文件
G-5。GET /WebDir/Application/1f3rd/Application Files/MyApp_1_0_0_0/MyApp.exe.deploy
和其他 .deploy 文件...
操作:重定向、验证用户并返回文件
uid在 URL 中有效时,应用程序才能成功部署和升级。如果您想让我说清楚或详细解释一些事情,请随时询问。如果您对上述内容有修改建议,也请发布。
如果哪天有空我会写一篇详细的CodeProject文章。
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |