[英]Android ADAL not allowed to load local resource
首先提供一些快速信息:
這種工作方式是azure將向用戶顯示一個webview(至少我懷疑這是一個webview),在這里他或她可以選擇自己喜歡的登錄/注冊方法
一切正常,用戶單擊“登錄”,ADAL從后端(facebook,g +,...)加載身份提供程序,當您選擇一個身份提供程序時,將從相應的提供程序獲得預期的登錄屏幕。
問題在於,當用戶實際使用其社交帳戶登錄時,應用程序突然返回到主屏幕。 如果我隨后查看日志,則會看到此錯誤:
"Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png", source: data:text/html,chromewebdata (12)
我知道這是一項安全功能,並且有很多解決方法,但是由於所有內容都是在ADAL內部生成的,並且由於我無法訪問庫的源代碼來更改Webview設置,因此我將不得不采用其他方法。 據我所知,我也不能更改Chrome的全局設置,所以我有點卡住了。
其他人遇到過這個問題嗎? 或者,甚至更好地知道解決方法? 也許我可以使用鉻的替代品? (盡管我不確定該如何工作,因為我無法編輯ADAL的內部工作,而且它似乎不是開源的)
用於生成所有這些的代碼非常簡單(大多數代碼是自動化的或在ADAL內部完成):
public async Task<AuthenticationResult> Login(IPlatformParameters parameters, bool isSignIn)
{
var authContext = new AuthenticationContext(AUTHORITY_URL, new TokenCache());
if (CORRELATION_ID != null &&
CORRELATION_ID.Trim().Length != 0)
{
authContext.CorrelationId = Guid.Parse(CORRELATION_ID);
}
String policy = "";
if (isSignIn)
policy = EMAIL_SIGNIN_POLICY;
else
policy = EMAIL_SIGNUP_POLICY;
return await authContext.AcquireTokenAsync(SCOPES, ADDITIONAL_SCOPES, CLIENT_ID, new Uri(REDIRECT_URL), parameters, UserIdentifier.AnyUser, EXTRA_QP, policy);
}
}
編輯:在較舊版本的android(api 15)上對其進行了測試,並且確實可以正常工作,因此這不是代碼的邏輯。
所有版本的ADAL都是開源的。 您可以在以下位置找到此特定版本的源:
https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/tree/Convergence-v4-RELEASE
因此,無論出於什么奇怪的原因,android都認為這一切都變得很酷。
我不知道為什么,但是現在可以正常工作。 我確定地獄沒有更改代碼...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.