在IFrame内调用webscript时授权露天用户



我正在开发一个组件来轻松编辑文档属性页面中的关联。该组件的可视部分是一个显示myspaces webscript的IFRAME。我在将用户身份验证传输到 IFRAME 的内容时遇到困难。会话丢失,因此浏览器要求新的基本身份验证。我可以使用 alf_ticket url 参数传输票证,但它不会重用于 webscript 生成的其他 url。

如何将Alfresco身份验证转移到IFRAME中包含的网络脚本中?

 <script type="text/javascript">
    var self = this;
    var ticket;
    var xmlHttpReq = false;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open("GET", "http://blrkec335927d:8080/alfresco/wcservice/api/login?u=admin&pw=admin", true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'json');
    self.xmlHttpReq.setRequestHeader('X-Alfresco-Remote-User', 'admin');
    xmlHttpReq.onreadystatechange = function() {//Call a function when the state changes.
        alert(xmlHttpReq.status);
            if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
            {
                var xml = xmlHttpReq.responseXML;
            var getticket = xml.getElementsByTagName("ticket");
            ticket = getticket[0].childNodes[0].nodeValue
                  var url1 = "http://blrkec335927d:8080/alfresco/wcservice/ui/myspaces?f=0&p=%2FCompany%20Home&alf_ticket="+ticket;
                var aa='<iframe bgcolor="#edf6fc" width="100%" height="100%" frameborder=0 src="'+url1+'" />';
                document.getElementById('uploaddoc').innerHTML = aa; 
            }
        }
    self.xmlHttpReq.send();
    </script>
<body>
<span id="pageTitle">${label['ALFRESCO_DOCUMENT']}</span>
<div id="uploaddoc">
</div>
</body>
<span id="footerButtons" style="vertical-align: bottom;"></span>

我正在使用上面的代码.但是在加载页面时,它仍然要求输入用户名和密码。请帮助我

首先,不要将iFrames用于简单的Web脚本。您不会加载一个应该有自己的会话的全新页面。

只需使用客户端JavaScript来获取JSON后端数据,然后绘制自己的UI。

在任何情况下,您都不得不使用iFrame,然后只需创建自己的myspaces网络脚本即可。复制所有内容,重命名并在每个生成的 url 后面添加您的alf_ticket。

最新更新