我在 Visual Studio 2015 中使用 Xamarin Forms 和新的 MSAL 预览 v.1.1.0。该应用程序调用 PublicClientApplication.AcquireTokenAsync,它会在移动设备上的 Chrome 中提取登录表单。
这使我的问题类似于这个问题:New preview for MSAL login redirect for Xamarin droid failed。
有两个区别。首先,我间歇性地收到一个不同的错误。查看突出显示的区别:“无法访问此站点。位于 msal[my app id]://auth/? state=... 的网页”
其次,我的登录调用了 WebApi,它将用户从 SQL 数据库迁移到 Azure B2C Active Directory。我在这部分遵循以下示例:https ://github.com/Azure-Samples/active-directory-b2c-advanced-policies/tree/master/Migration-JIT-sample 。
我注意到这通常发生在用户从我的数据库迁移到 Azure B2C 时。在这种情况下,登录会被调用两次。一次迁移用户,然后另一次登录用户。当用户未迁移时,错误似乎也间歇性发生,通常是如果我有几个小时没有尝试登录,这可能是不同的漏洞。否则,登录工作正常。此外,iOS 上不会发生此错误。这是一个仅限 Android 的错误。
我认为 Android 上的意图侦听器无法正常工作。当我收到“无法访问此站点...”错误时,如果我从我的 Android 应用程序在 Chrome 中打开该站点,我将被重定向到我的应用程序并登录。这让我认为链接是正确,但监听器不工作。
我猜这可能是下面代码行中的一个错误,它位于 MainActivity 的 OnActivityResult 方法中。AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data);