0

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

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

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

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

因此,HTTPRequest 和 WebBrowser 让我失望了,因为它们不会导致回发,因此这些服务器端控件不起作用。更重要的是,如果我尝试通过在每次响应后保存 ViewState 来“伪造”回发,而不是在下一次请求时重新发送,那么在几(3-4)次之后,原始页面将返回“状态信息对此页面可能已损坏”错误,即使我使用

EnableViewStateMac ="false" EnableSessionState="True" EnableEventValidation ="false" ValidateRequest ="false" ViewStateEncryptionMode ="从不

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

提前致谢

4

1 回答 1

1

这里的主要愿望是什么?

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

答案:iframe

  1. 从两个站点提交一个提交按钮?

回答:不是一个好主意。你也许可以通过创建一个刮板和解析器来解决这个问题,但它只会像“我能做到的奖杯”一样酷。最好重新架构解决方案。但是假设您真的想这样做,您将不得不解析来自嵌入式站点的结果并将提交重定向到新站点。然后该站点将获取值并将表单提交到第一个站点并等待结果,它将抓取结果以向用户提供响应。它实际上要复杂得多,因为您必须解析 HTML DOM(当然,如果所有 HTML 都兼容 XHTML,则更容易)以找出要拦截的内容。

警告:对嵌入式站点的任何更改都可能破坏您的代码,因此维护第一个站点的人员必须意识到这种人为创建的依赖关系,这样他们就不会更改任何可能导致问题的东西。哎呀,听起来很脆!;-)

  1. 其他?

如果使用 iFrame 不起作用,那么我会考虑业务问题并制定一个理想的架构来解决它,这可能意味着通过 Web 服务为第二个站点提供嵌入式站点的功能。

于 2015-06-30T17:27:37.583 回答