我已經構建的MVC應用程序類型存在固有的設計缺陷,我相信我不是第一個意識到的。MVC AD Azure Refresh令牌通過ADAL JavaScript Ajax和KnockoutJs
我有一種利用被引入到應用程序以下列方式
Developing ASP.NET Apps with Azure Active Directory
一旦爲用戶被認證和Home.cshtml
負載,KnockoutJs用於執行的JavaScript AJAX AD天青認證的MVC 4應用POST和GET請求讀取和寫入數據。
因此,不完全是一個單頁面應用程序,而是通過AJAX進行身份驗證和服務資產以及讀/寫操作的傳統回傳混合。
在AJAX請求期間,身份驗證令牌到期並且AD無法通過JavaScript刷新令牌。觀察
以下瀏覽器錯誤
的XMLHttpRequest不能加載https://login.windows.net/xxx。 請求的資源上沒有「Access-Control-Allow-Origin」標題。 原因'xxx'因此不被允許訪問。
我已經研究adal.js及以下職位,但不能肯定是否adal.js是解決我的應用程序類型 或如何最好地將它,使之與我的應用程序類型的工作。
我到目前爲止的理解:我不使用AngularJS
。
我沒有開始通過JavaScript進行身份驗證,我的身份驗證不是JavaScript驅動的,無法從adal.js中受益。
服務器端完成身份驗證,隨後的OAuth2刷新令牌機制需要完整頁面回發。
我已經無意中發現了Vittorio Bertocci的各種相關帖子,但沒有提到這種類型的MVC應用程序設計的特殊性。
ADAL, Windows Azure AD and Multi-Resource Refresh Tokens
WAAD doesn't refresh access token from javascript
Combining ADAL.Net and ADAL.js
AngularJS + ADAL.JS set Resource ID (Audience)
我現在唯一的選擇是使用一個隱藏的HTML IFrame來回發每20分鐘,並使用客戶端重定向到登錄頁面來處理刷新令牌錯誤 – puri
我意識到這是幾個月前,但是我現在遇到了同樣的問題,你的解決方案是什麼?你如何捕捉客戶端的令牌錯誤?謝謝。 – Namrehs