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'來查詢位置。但我沒有使用它進行身份驗證。 –