如何在asp.net 3.5中创建装饰代理页面

时间:2015-06-30 17:12:33

标签: c# asp.net web asp.net-3.5 proxy-pattern

我正在尝试制作此功能,而且我真的卡住了。

我有两个在同一个域上运行的应用程序。我需要在其自己的(第一个)母版页中有一个应用程序加载页面。

当然,我完全可以控制双方的代码。

我尝试使用HTTPRequest和HTTPResponse,我尝试过使用WebBrowser。只要我有静态(纯HTML)页面,两者都可以很好地工作。然而, 那些页面实际上是动态的。用户需要按服务器端按钮(回发),并且通常使用会话,视图状态和/或cookie。

因此,HTTPRequest和WebBrowser使我失败,因为它们不会导致回发,因此这些服务器端控件无法正常工作。更重要的是,如果我试图"假的"通过在每个响应之后保存ViewState而不是在下一个请求上重新发送一个回发,在几(3-4)次之后,原始页面将返回一个"该页面的状态信息无效并且可能已损坏&# 34;错误,即使我使用

EnableViewStateMac =" false"的EnableSessionState ="真" EnableEventValidation =" false" ValidateRequest =" false" ViewStateEncryptionMode ="从不

所以...任何想法如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:1)

这里的主要愿望是什么?

  1. 在没有任何架构更改的情况下将一个站点的内容包装在另一个站点中?
  2. 答案:iframe

    1. 从两个网站提交一个提交按钮吗?
    2. 答案:不是一个好主意。你可以通过创建一个刮刀和解析器来解决这个问题,但它只会很酷,因为我可以做一个奖杯"。最好重新构建解决方案。但假设您确实想要这样做,则必须解析嵌入式站点的结果并将提交重定向到新站点。然后,该站点将获取值并将表单提交到第一个站点并等待结果,它将抓取该用户的响应。它实际上要复杂得多,因为您必须解析HTML DOM(当然,如果所有HTML都符合XHTML,则更容易)来确定拦截内容。

      警告:对嵌入式网站的任何更改都可能会破坏您的代码,因此维护第一个网站的人必须了解这种人工创建的依赖关系,以便他们不会更改可能导致问题的任何内容。哎呀,听起来很脆弱! ; - )

      1. 其他?
      2. 如果使用iFrame不起作用,那么我会查看业务问题并制定理想的架构来解决它,这可能意味着通过第二个站点的Web服务使嵌入式站点的功能可用。 / p>