在构建通过第三方服务器重定向进行身份验证的登录系统时,我在IE中看到一个空白的白屏。 (当浏览器失败时,浏览器应该在我的服务器上请求回页。)
登录信息如下:
- 用户请求http://www.myserver.com/并返回302重定向到http://www.myserver.com/login.aspx以及在初始请求和初始网址中存储任何GET / POST参数的Cookie。
- 用户的浏览器请求http://www.myserver.com/login.aspx并返回200 OK,并给出一个带有用户名和密码字段的HTML页面。
- 用户将HTML表单作为POST提交给http://www.myserver.com/login.aspx并收到略微不同的200响应(此HTML页面有一个下拉列表,可从用户列表中选择在步骤2中输入的用户名/密码具有登录的权利,(对于以其经理身份登录的助理。))
- 用户选择下拉列表的值,然后再次将该页面作为POST提交给http://www.myserver.com/login.aspx。这次他们收到302重定向到https://secure.3rdpartyserver.ca/login/login.aspx?WSLR= {加密登录参数,包括重定向到的网址}
- 用户的浏览器执行https://secure.3rdpartyserver.ca/login/login.aspx?WSLR= {加密登录参数的GET请求,包括重定向到的网址}并收到302重定向到http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& ; impersonateId = {}号
- (Firefox / Chrome)用户的浏览器对http://www.myserver.com/login.aspx?userID= {number}& sessionId = {number}& impersonateId = {number}发出GET请求,并收到302重定向到http://www.myserver.com/(并清除步骤1中设置的cookie。)
- (Firefox / Chrome)用户的浏览器对http://www.myserver.com/执行GET请求,并最终获得用户想要的HTML页面。
醇>
然而,IE9中的第6步似乎搞砸了:
我没有在其他浏览器中测试,因为此系统仍在调试模式下在我的localhost上运行。这也可能是因为localhost是内部网区域而第三方服务器是互联网区域而引入错误(尽管它应该可以工作。)有没有办法让localhost在互联网区运行?
如果您点击刷新按钮或单击地址栏并在白色屏幕上按Enter键,则登录正常进行,就好像它没有在第一时间中断一样。