HTTP 302在IE中失败的服务器之间重定向,在FF和chrome中工作

时间:2013-05-22 21:45:50

标签: internet-explorer http redirect cross-domain http-redirect

在构建通过第三方服务器重定向进行身份验证的登录系统时,我在IE中看到一个空白的白屏。 (当浏览器失败时,浏览器应该在我的服务器上请求回页。)

登录信息如下:

  1. 用户请求http://www.myserver.com/并返回302重定向到http://www.myserver.com/login.aspx以及在初始请求和初始网址中存储任何GET / POST参数的Cookie。
  2. 用户的浏览器请求http://www.myserver.com/login.aspx并返回200 OK,并给出一个带有用户名和密码字段的HTML页面。
  3. 用户将HTML表单作为POST提交给http://www.myserver.com/login.aspx并收到略微不同的200响应(此HTML页面有一个下拉列表,可从用户列表中选择在步骤2中输入的用户名/密码具有登录的权利,(对于以其经理身份登录的助理。))
  4. 用户选择下拉列表的值,然后再次将该页面作为POST提交给http://www.myserver.com/login.aspx。这次他们收到302重定向到https://secure.3rdpartyserver.ca/login/login.aspx?WSLR= {加密登录参数,包括重定向到的网址}
  5. 用户的浏览器执行https://secure.3rdpartyserver.ca/login/login.aspx?WSLR= {加密登录参数的GET请求,包括重定向到的网址}并收到302重定向到http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& ; impersonateId = {}号
  6. (Firefox / Chrome)用户的浏览器对http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& impersonateId = {number}发出GET请求,并收到302重定向到http://www.myserver.com/(并清除步骤1中设置的cookie。)
  7. (Firefox / Chrome)用户的浏览器对http://www.myserver.com/执行GET请求,并最终获得用户想要的HTML页面。
  8. 然而,IE9中的第6步似乎搞砸了:

    • 如果我根本不监控它,我会在步骤6看到一个空白的白色屏幕,其中URL栏显示http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& impersonateId = {number}。我的login.aspx的Page_Load方法永远不会在服务器上调用。
    • 如果我点击F12并使用内置网络捕获功能,它会显示所有内容,直到第6步,然后它会显示http://www.myserver.com/login/login.aspx?WSLR= {加密登录参数的GET请求,包括重定向到的网址}(非 - 存在的页面,它是步骤5和6中URL的混合。)当我尝试在那里制作页面时,它从未被调用过。浏览器仍显示空白屏幕,其网址为http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& impersonateId = {number}。我的login.aspx的Page_Load方法永远不会在服务器上调用。
    • 如果我在IE中执行此请求时运行HttpAnalyizer,整个过程就像在Firefox / Chrome中一样。

    我没有在其他浏览器中测试,因为此系统仍在调试模式下在我的localhost上运行。这也可能是因为localhost是内部网区域而第三方服务器是互联网区域而引入错误(尽管它应该可以工作。)有没有办法让localhost在互联网区运行?

    如果您点击刷新按钮或单击地址栏并在白色屏幕上按Enter键,则登录正常进行,就好像它没有在第一时间中断一样。

0 个答案:

没有答案