2009-05-04 76 views
5

假设您正在编写基于网络的WinForms应用程序,该应用程序由于客户站点上的限制性公司策略而应该在“偏执狂”环境中运行。这样的敌对环境有什么样的限制,你做了什么来设计他们?部署.NET WinForms应用程序的最恶劣的企业环境是什么?

一些实例以开始:

  • 问题:有一个非常严格的防火墙仅允许出站端口80流量。解决方案:只使用HTTP进行联网。
  • 问题:.NET框架是不允许的。解决方案:将您的应用程序转变为网络应用

在现实生活中的客户情况下,例如银行软件(通常需要生活在特别严格的环境中),您会遇到什么样的限制?

+2

这不是真的能回答你的问题,但它提醒了我(特别是第一个问题)RFC 3093.在某个时刻,你必须承认这些黑客是为了逃避管理,而不是保持真正的安全。 – 2009-05-04 13:22:35

+0

这是一个无赖这是封闭的,我认为这将会成为一个很好的社区wiki问题。 – overslacked 2009-05-04 15:48:28

回答

3

好吧,问题的第一部分,我不确定。但是,关于你的要点。您可以在端口80上运行服务器,而不是使用HTTP,但使用自定义协议。另外,当然防火墙允许SSL(443),你也可以将你的协议封装在SSL中。就.NET框架而言,您可以使用Xenocode的PostBuild或类似的“静态链接”类的.NET应用程序。此外,对于HTTP的东西,你可以让你的应用程序通过HTTP进行通信,但使用Web服务,因此仍然提供了一个丰富的客户端。

这里有一个链接到PostBuild:

https://secure.xenocode.com/Products/Postbuild-for-NET/

0

被迫在旧框架,如.NET 1.1,.NET 2.0的发布3年后发展起来的。也是桌面和服务器团队之间的脱节。桌面团队认为.NET很糟糕而且不安全,而服务器团队恰好相反,并且热爱.NET,因为它有能力通过信任权限锁定环境。

你可以做很多事情来改变非常快的企业政策。这是一个缓慢而缓慢的过程,让他们接受新事物。

1

强制通过端口80的所有网络流量是一个很好的。然后需要端口80上的重定向器允许多个服务器应用程序在一个端口上“侦听”,因为打开任何其他端口将是“安全风险”。

1

您可能遇到的最大问题可能是那些不会定期运行Windows Update并且无法访问其计算机的公司。我的客户就是这样,但他们需要。

这意味着当你推出你的软件时,你需要知道他们有什么.net平台,并告诉他们'更新到最新'并不总是一种选择。在没有互联网的情况下,在每个桌面上安装更新程序,并获得所有.net版本,Service Pack和MS修补程序,这是一件非常痛苦的事情。因此,如果您提供的代码需要用户没有的东西,那么您可能需要重写它。

2

坚持坚持使用IE6的公司。如果您尝试解决Web应用程序的限制,可能会增加整体开销。

不给他们的用户在他们的机器上安装东西的管理权限也是一件大事,可能是他们可能坚持的浏览器上的一些安全设置。

相关问题