0

我有一个Windows 8 metro应用程序,它通过iframing远程服务的登录表单进行oauth登录。我需要监视iframe中的导航,因为最后一步将导航到包含需要从url中读出的oauth代码的url。Windows 8地铁监视器iframe导航

有2个部分这个问题:

1)如何监控在iframe导航。

2)如何获取iframe的当前位置。我想要的所有东西(document.getElementById('theIframe').{src|contentWindow.location.href})要么给出初始位置,要么返回拒绝访问错误。

+0

是否有理由不使用WebAuthenticationBroker? –

+0

@ JeffBrand-MSFT我想我可以做,但它不适合应用程序的外观和感觉。有没有什么办法可以禁用经纪人网址需要ssl的要求,仅用于测试目的。我现在在本地托管oauth服务器,真的不希望在我的开发盒上安装ssl证书。 – Endophage

+0

@ JeffBrand-MSFT WebAuthenticationBroker没有记录在任何地方。你想添加一个带有示例项目链接的答案,我会接受它。我得到了它的工作。 – Endophage

回答

0

由于@ JeffBrand-MSFT建议,此示例可能有所帮助。 http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122

有些文档,也许有帮助 http://msdn.microsoft.com/en-us/library/windows/apps/windows.security.authentication.web.webauthenticationbroker

要回答你原来的问题,你可以查询.src属性在iframe监视url。 (例如var currentLocatoin = $('#iframeId').src),或者您可以在您的本机应用程序和iframe内的内容之间实施postMessage协议。 Mircrosoft沙盒iframe的内容,因此呼吁$('#iframeId').contentWindow.location.href会给你Access Denied Error

+0

我发现各种属性('src','contentWindow.location.href')从来没有实际更新过,因此父母可以看到它们,我的原始Q中的第二点。我一旦将它放到WebAuthenticationBroker上在指出它之前,找到这些信息并不容易。 – Endophage

+0

在我有iframe的应用程序中,我使用'postMessage'来查询位置。但我没有使用它进行身份验证。 –