2012-08-14 95 views
1

我有不同的域运行两个应用程序:跨域会话保持活跃在asp.net

  1. webformapp.com
  2. mvcapp.com

webformapp.com有一个iframe这点到mvcapp.com。现在,当mvcapp.com上有活动时,我想让session保持在webformapp.com中。我在webformapp.com中实现了一个通用处理程序(KeepAlive.ashx),并尝试从mvcapp.com调用以保持会话在webformapp.com上保持活动状态,但我想因为跨域访问限制,直接调用webformapp.com/KeepAlive。来自mvcapp.com的ashx通过一个简单的http get/post请求不会触发处理程序。给出的解决方案here用于我猜测的相同域。在这种情况下实施保持活动机制的任何更简单的解决方案?

+0

如果应用程序位于不同的域中,并且其中一个应用程序在另一个应用程序的iframe中引用,我不明白为什么两人中的任何一场会议都可能会失效。只要在web.config中配置会话超时设置,两个会话都应该继续有效。你如何测试这个? – Icarus 2012-08-14 14:51:22

+0

两个网站彼此独立。除非另有说明,否则Iframed站点不会默认刷新父站点的会话。据我所知,Iframe只是另一个网站的窗口。 – Nexus23 2012-08-14 15:05:13

+0

你的知识是正确的。我想我不明白这个问题,然后...... – Icarus 2012-08-14 15:07:53

回答

0

如果我理解你的问题,用户正在积极地处理由webform应用程序提供的iframe中的mvc应用程序。只要浏览器窗口打开,从iframe之外的浏览器打开,你是否能够在webform应用程序中发布心跳超时信息?

我在过去曾做过类似的事情,我在会话中维护了一个计数器,在x刷新之后,处理程序会响应一个失败代码,浏览器可以通过重定向提示或您有什么回应。