通过网络运行.net应用程序

时间:2010-03-18 11:44:42

标签: c# .net security networking clickonce

我需要启用.NET应用程序以在网络共享上运行,问题是这将在客户端的网络共享上,因此路径将不相同。

我已经快速浏览了ClickOnce和Visual Studio 2008中的发布选项,但它需要一个特定的网络共享位置 - 而且我假设这个位置存储在某个地方。

目前正在使用旧的VB6应用程序完成工作,因此解决了所有这些安全问题,但该应用程序写得很差,几乎无法维护,所以它确实需要去。

是否可以设置域控制器以允许执行此特定的.NET应用程序?任何其他选项都会受到欢迎,因为我希望这个小应用程序对业务至关重要。

我应该说客户端网络是学校,因此通常会像客户端计算机一样被锁定,因此手动向每台客户端计算机添加例外是不可能的。


道歉,我忘了提到我们目前仅限于.NET 2.0,我们计划将其升级到4.0,但这不会立即发生。

5 个答案:

答案 0 :(得分:3)

  1. 在项目属性的“发布”标签上,有一个“安装文件夹URL”文本框。 Visual Studio要求您在那里放置一些东西。只需输入任意随机的UNC路径(\\someserver\randomfolder
  2. 单击“选项”按钮。选择“清单”并选中“排除部署提供程序URL”。这将删除您在步骤1中强制添加的路径。
  3. 这应该允许客户将您的部署放在任何他们想要的地方。当用户安装时,他们的开始菜单快捷方式将指向他们放置部署的位置。

    以下是MSDN关于该复选框的说明......

      

    排除部署提供商网址
      指定是否排除   来自的部署提供程序URL   部署清单。从...开始   Visual Studio 2008 SP1,部署   提供者URL可以从中排除   表示其中的场景   应用程序更新应来自a   位置未知的时间   初次出版。之后   应用程序发布,更新将   从哪里检查   应用程序是从。

    安装的

答案 1 :(得分:3)

清单中的部署位置必须与部署位置匹配。您将需要使用UNC路径。这应该没有任何问题。 ClickOnce应用程序安装在用户的配置文件下,不需要管理权限。它只需要对部署应用程序的文件共享进行读访问。

最佳答案是为每个学校创建部署并为您设置UNC路径,因为这样您就可以向他们发送签名部署,并将它们放在文件共享上。但这是一个重要的p.i.t.a.如果涉及很多学校。

下一个答案是:谁实际将应用程序部署到每个学校,即将其放在文件共享上?有某种管理员吗?

我建议(取决于它是谁)给他们mageUI.exe并教他们如何更改部署URL并重新签名清单(它会提示)。他们重新签署部署的问题是他们必须拥有证书。您可以为每个学校提供自己的证书(使用VS中的“创建测试证书”按钮创建,或使用MakeCert创建一个[询问您是否需要更多信息])或者给他们所有相同的密钥(不是很安全,但是嘿,它会工作)。

如果您至少更新到.NET 3.5 SP-1,则可以在不签名的情况下部署应用程序。 (我不会给你一个关于.NET 2.0的困难,我的公司处于相同的位置,我只是传递这些信息。)

如果计算机具有Internet访问权限,您可能会找到以每月10美元的价格托管部署的地方,并将其推送到网络服务器并让它们全部从那里安装。然后每个人都会同时获得更新,您只需要将更新部署到一个位置。假设他们可以访问互联网,这将是最简单的解决方案。

RobinDotNet
Visit my ClickOnce blog!

答案 2 :(得分:0)

你能使用UNC路径吗?

\\\server\folder\app.exe?

答案 3 :(得分:0)

也许,这里的链接可以拯救你,如果我没弄错的话,你是否担心驱动器号和处理UNC惯例?在CodeGuru上查看一下,其中包含有关如何在运行时动态映射到UNC共享的代码。

答案 4 :(得分:0)

问题是与.Net框架相关的安全性。不幸的是,我在这个领域没有太多经验,但也许其中一个链接会有所帮助: