2010-04-11 116 views
3

该任务是通过调用服务器的Web API获取session_id来绕过远程服务器上的登录表单。这样用户不必登录两次。IE不会从iframe开始会话?

由于没有办法为其他域设置Cookie。我们想到的是 - 在远程服务器上放置一个小文件,我们从隐藏的iframe传递加密的session_id,并且该文件应该为远程应用程序启动适当的会话,然后将其加载到另一个iframe中。

这种方法在FF/Chrome中可以正常工作,但不是IE ...但是,如果我将url复制到自制的远程授权脚本,从iframe的src属性到IE的地址栏,并从那里加载它,session get按预期方式创建。但由于某种原因,它只是不想从一个iframe做同样的事情。

有没有人有任何线索,为什么会发生这种情况?

+0

为什么不直接建立一个到该服务的链接,而不是将其放入iframe中?您的方法看起来像网络钓鱼。 – 2010-04-11 08:27:27

+1

我们的客户想要这样。某种集成到另一个应用程序的后端。放置一个链接或按钮,将打开远程应用程序在单独的窗口中,不被视为他们的选项:(否则它会更简单,当然,它是什么样的phishy呢?我们得到了一个有效的session_id,从验证的web API呼叫。 – jayarjo 2010-04-11 08:41:15

回答

0

好的,我们为IE做了什么,我们只是将整个浏览器重定向到授权脚本,然后再将其重定向到授权脚本。不管怎样,至少可以解决问题。

任何人有更好的解决方案?

1

我刚刚遇到同样的问题,并通过将服务器的服务器上的时间设置为包含iframe的服务器的时间来解决此问题。