Microsoft 身份验证库 (MSAL) 从未 returns 来自 Android 上的 AcquireTokenAsync()
Microsoft Authentication Library (MSAL) never returns from AcquireTokenAsync() on Android
我有一个 Xamarin.Forms iOS/Android 应用程序,必须根据 Microsoft Azure B2C AD 对用户进行身份验证。
我添加了 Microsoft.Identity.Client NuGet 并使用它进行身份验证。
它在 iOS 上运行良好,但在 Android 上,AcquireTokenAsync() 中的相同代码永远不会 returns。
登录 UI 已按应有的方式显示,用户名和密码已被接受,MSAL 库提供的 UI 已按应有的方式关闭,但对 await AcquireTokenAsync()
的调用从未 returns.
代码在应用程序的核心项目中PCL。
我试过 Android 4、5 和 6 台设备。
我知道 MSAL 仍处于 alpha 测试阶段,我只是想确认是否是因为这个原因,或者我可能做错了什么。
显然我的 MainActivity.cs 中需要这段代码,但我在他们的示例中忽略了这一点:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs(requestCode, resultCode, data);
}
我有一个 Xamarin.Forms iOS/Android 应用程序,必须根据 Microsoft Azure B2C AD 对用户进行身份验证。
我添加了 Microsoft.Identity.Client NuGet 并使用它进行身份验证。
它在 iOS 上运行良好,但在 Android 上,AcquireTokenAsync() 中的相同代码永远不会 returns。
登录 UI 已按应有的方式显示,用户名和密码已被接受,MSAL 库提供的 UI 已按应有的方式关闭,但对 await AcquireTokenAsync()
的调用从未 returns.
代码在应用程序的核心项目中PCL。
我试过 Android 4、5 和 6 台设备。
我知道 MSAL 仍处于 alpha 测试阶段,我只是想确认是否是因为这个原因,或者我可能做错了什么。
显然我的 MainActivity.cs 中需要这段代码,但我在他们的示例中忽略了这一点:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs(requestCode, resultCode, data);
}