在Intranet站点上显示Internet内容

时间:2011-02-23 08:54:47

标签: asp.net

我在局域网内部托管了一个ASP.NET应用程序。应用程序主机可以访问Internet,而局域网客户端则不能访问Internet。

有一个要求我要在互联网(公共网络)地址的IFrame中显示包含丰富内容(图像)的网页。

然而,由于客户端无法访问互联网,因此必须从服务器完成,然后需要将其提供给客户端。

如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用应用程序代码中的HttpWebRequestHttpWebResponse来查询其他服务器,然后您可以通过将其输出到Response来重新提供响应。要复制实际的网页,您还需要解析所有嵌入的资源(脚本,图像等)并再次从主机服务器请求它们,并创建一个体系结构,以便可以从应用程序重新流式传输它们。也就是说,如果您只是对页面请求的响应进行反刍,则由于客户端无法访问,因此不会加载任何资源。您需要将页面中的这些URL重新写入服务器上的某些内容,然后从真实服务器重新请求它们。听起来像是一种痛苦,但技术上可行。

我认为创建某种代理可以让客户直接通过门户访问该网站变得更加容易。 (我上面提出的基本上是一个专门的代理)。如果您可以直接使用IIS,则可以创建一些用于此目的的更直接代理。我猜你必须有一个很好的理由为什么你需要这样做,比如,这些是零售店的公共终端,而你显然不希望你的客户从那里购物价格:)