我可以从父页面验证iFrame页面吗?

时间:2010-11-11 21:34:13

标签: javascript html authentication iframe

我有一个简单的HTML页面,可以旋转几个状态页面,我在校园周围的几个电视上显示。我定期更新页面和链接。很多时候页面需要身份验证。远程终端提供凭证是一种痛苦。一些是HTTP身份验证,一些是基于<form>的基于身份验证的网站。很多时候,我可以通过HTML和JavaScript发布基于<form>的身份验证,并发布正确的凭据。

  1. 有没有更好的方式来解决 基于<form>的身份验证 从主页? (下同)

  2. 有没有办法解决这个问题 基于服务器/ HTTP的身份验证 从主页页面无需 手动验证永远 显示?

  3. 通过<form>身份验证,我的意思是<form>操作会生成会话Cookie吗? (mikerobi,感谢评论)

    以下是主页的代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> 
      Important Stuff 
    </title>
        <script src="/scripts/jquery.js" type="text/javascript"></script>
        <style type="text/css">
            html, body, iframe { margin:0; height:100%; }
            iframe { display:block; width:100%; border:none; }
        </style>
        <script type="text/javascript">
            var link = new Array();        
            link[0] = "http://mycompany.intranet/";        
            link[1] = "http://mycompany.intranet/weather.htm";        
            link[2] = "http://mycompany.intranet/systemstatus/";        
            var linkIndex = 0;
            setInterval("doSomething()", 10000);
    
            function doSomething() {
    
                if (linkIndex >= link.length)
                {
                    // reload in case the page has been updated
                    window.location.reload();
                }
    
                $("#frame").attr("src", link[linkIndex]);
                linkIndex++;
            }
        </script>
    </head>
    <body>
        <iframe id="frame" src="http://mycompany.intranet/"></iframe>
    </body>
    </html>
    

1 个答案:

答案 0 :(得分:8)

  1. 我没有看到您的代码发送基于POST的登录的凭据,但如果您使用JavaScript自动提交表单(使用其.submit()方法),那可能是最好的办法。请注意,HTML表单的target属性允许您在不同的窗口(或您的情况下,iframe)中提交表单 - 只需为iframe提供name="xyz"属性并使用{{ 1}}表格。表单将位于主页中,可以使用CSS target="xyz"隐藏。

  2. 您可以在网址中包含HTTP Basic Auth用户名和密码,例如:display: none。请注意,当前的Web浏览器可能不允许在默认配置中将其作为防范特定网络钓鱼技术的保护措施,您可能必须change the configuration编辑Windows注册表或存储Web浏览器设置的其他位置。